Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 12/02/2010, 17h44   #1
Invité régulier
 
Inscription : décembre 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 32
Points : 8
Points : 8
Envoyer un message via MSN à boulhous
Par défaut Shell interprete une fonction que je n'ai pas appelé

Bonjour,
j'essaye de créer un script qui detectera toutes les modifications faites sur les fichiers /etc/passwd du parc informatique.
ci joint le script, le prebleme que je rencontre est que shell interprete une fonction que je n'appele pas pour le moment dans mon script.
voila le retour d'execution du script:
Code :
1
2
3
4
5
6
7
8
9
10
frd7:/root/home/root/jim (root) ./compareUsers.sh
./compareUsers.sh[55]:  | awk -F=: cannot open
./compareUsers.sh[72]:  | sed 's/\ \ */\ /g' > ^J^J^I#######################################################^J^I## mise à jour du fichier de reference               ##^J^I## par le nouveau fichier /etc/passwd                ##^J^I## si on detecte une difference entre le fichier     ##^J^I## /etc/passwd et le fichier de reference            ##^J^I#######################################################^J^J^In=0^J^Iif [  = 0 ]; then^J^I^I^Iecho aucune:  not found
 
./compareUsers.sh[75]: syntax error at line 77 : `fi' unexpected
frd7:/root/home/root/jim (root) ./compareUsers.sh
./compareUsers.sh[55]:  | awk -F=: cannot open
./compareUsers.sh[72]:  | sed 's/\ \ */\ /g' > ^J^J^I#######################################################^J^I## mise à jour du fichier de reference               ##^J^I## par le nouveau fichier /etc/passwd                ##^J^I## si on detecte une difference entre le fichier     ##^J^I## /etc/passwd et le fichier de reference            ##^J^I#######################################################^J^J^In=0^J^Iif [  = 0 ]; then^J^I^I^Iecho aucune:  not found
 
./compareUsers.sh[75]: syntax error at line 77 : `fi' unexpected
tous ces erreurs, comme vous allez le constater correspondent a une execution du code de la fonction compare, que je n'appele pas dans le programme principal.

Merci pour votre interet au sujet. et un grand merci pour votre aide
Fichiers attachés
Type de fichier : txt compareUsers.ksh.txt (4,7 Ko, 4 affichages)
boulhous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/02/2010, 18h17   #2
Expert Confirmé
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 1 896
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 1 896
Points : 3 676
Points : 3 676
ne correspond pas à la fonction compare

Je lis qu'il y a une erreur aux lignes 55, 72, 75 et 77 du script, mais tu as peut-être un problème d'encodage de ton fichier script...
? Tu l'as écrit sur Linux ?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2010, 01h19   #3
Membre confirmé
 
Avatar de SYL666
 
Cédric
Inscription : novembre 2003
Messages : 308
Détails du profil
Informations personnelles :
Nom : Cédric

Informations forums :
Inscription : novembre 2003
Messages : 308
Points : 296
Points : 296
Salut,

voici les propositions :
  • Déjà, est ce que cela ne serait pas plus simple de passé par quelque chose fait pour cela, tel qu'un audit ?
  • Ensuite, si c'est juste pour faire un awk { print }, n'est il pas plus pratique d'utiliser cut ?
  • As tu testé ce one liner hors-script ?
  • Mon awk à moi ne reconnait pas le -F="XXX" il prend plutot -F "XXX". Je ne sais pas si c'est identique pour toi
  • Finalement : peux tu essayer des single quotes au lieu des doubles ? Cela evitera peut être une mésinterprétation
__________________
The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/02/2010, 13h36   #4
Expert Confirmé Sénior
 
Homme Laurent Willems
Expert Stop/Start
Inscription : septembre 2002
Messages : 2 472
Détails du profil
Informations personnelles :
Nom : Homme Laurent Willems
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Expert Stop/Start

Informations forums :
Inscription : septembre 2002
Messages : 2 472
Points : 4 097
Points : 4 097
Salut,

Il faudrait déjà virer le double-quotes qui traine dans ton echo après le else à la ligne 74

Code :
1
2
3
4
5
6
7
8
9
 
        n=`cat $TEMP1 $TEMP2 $TEMP3 | wc -w`
        if [ "$n" = "0" ]; then
                        echo "aucune modification sur le serveur $CURRENT_SERVER"
                else
                        echo "le serveur $CURRENT_SERVER" a subit un modification"
                        echo $2 > $1
        fi
Il te manque aussi un double quote à la ligne 23

Code :
1
2
 
USERS_ADDED_FILE=${SCRIPTS_DIRECTORY}usersAdded.txt"
__________________
Alea Jacta Test!
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2010, 12h22   #5
Invité régulier
 
Inscription : décembre 2005
Messages : 32
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 32
Points : 8
Points : 8
Envoyer un message via MSN à boulhous
Merci pour vous tous N_BaH, SYL666 et Mygale1978,

votre aide m'etait d'une grande utilité, j'ai resolu ainsi le problème.

merci beaucoup.
Jamal.
boulhous est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 15h09.


 
 
 
 
Partenaires

Hébergement Web