Applications, problèmes de configuration réseau
falke
Chu Ko Nu
Messages : 416 Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble
Message
par falke » dim. 05 mars 2017, 16:25
bonsoir
j'aimerais améliorer le script suivant qui compare deux /etc/passwd chaque fin de journée notifie les nouveaux comptes et les comptes supprimés.
Pb : pour les compte supprimés par exple les noms apparaissent sur une ligne, alors que j'aimerais que chaque compte s'affiche sur une nouvelle ligne
Code : Tout sélectionner
[!/bin/bash
echo "comptes supprimés: "
diff passwd_avant.unl passwd_apres.unl | grep "<" | xargs
echo "comptes ajoutés : "
diff passw_avant.unl uti_passwd_apres.unl | grep ">" | xargs
/code]
merci pour votre aide
Dernière modification par
falke le mar. 07 mars 2017, 21:13, modifié 1 fois.
falke
Chu Ko Nu
Messages : 416 Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble
Message
par falke » dim. 05 mars 2017, 18:24
j'ai trouvé la sortie de chaque ligne comprenant
soit :
> login autre_champ (3 arguments)
en faisant (pour les ajouts par exple)
diff passw_avant.unl uti_passwd_apres.unl | grep ">" | xargs -n3
j'obtiens à chaque fois une ligne avec ces trois arguments
merci
benjarobin
Maître du Kyudo
Messages : 17187 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » dim. 05 mars 2017, 19:06
Ceci n'est pas mieux :
Code : Tout sélectionner
comm -13 <(grep -Eo "^[^:]+" /etc/passwd.old | sort -u) <(grep -Eo "^[^:]+" /etc/passwd | sort -u) | while read user ; do
echo "comptes supprimés: $user"
done
comm -23 <(grep -Eo "^[^:]+" /etc/passwd.old | sort -u) <(grep -Eo "^[^:]+" /etc/passwd | sort -u) | while read user ; do
echo "comptes ajoutés: $user"
done
Personnellement la plupart du temps je préfère une boucle while que d'utiliser xargs
falke
Chu Ko Nu
Messages : 416 Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble
Message
par falke » lun. 06 mars 2017, 18:10
salut benjarobin,
j'ai déjà vu cette commande comm sans la comprendre.
pourrais tu brièvement expliquer ce qu'elle fait ?
falke
Chu Ko Nu
Messages : 416 Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble
Message
par falke » lun. 06 mars 2017, 19:13
ah une doc en français.
où est-ce qu'on peu la trouver pour l'installer sur son système ?
benjarobin
Maître du Kyudo
Messages : 17187 Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon
Message
par benjarobin » lun. 06 mars 2017, 19:26
Les docs en français sont à proscrire car non à jour, et pas assez détaillé, l'anglais est bien plus clair et précis...
Sinon je ne sais plus si le paquet des man pages fr existe toujours...
falke
Chu Ko Nu
Messages : 416 Inscription : ven. 02 mars 2012, 19:24
Localisation : Grenoble
Message
par falke » mar. 07 mars 2017, 11:00
rebonjour robin,
j'ai testé cette commande en réel. C'est ultra -puissant, merci beaucoup. Evite un gros diff bien lourd.
Juste deux remarques :
Par contre la sortie est l'inverse de ce qui est attendu, j'ai adapté
j'ai testé de la sorte aussi :
echo "comptes ajoutés"
comm -13 ./passwd.old ./passwd.new
echo "comptes supprimés"
comm -23 ./passwd.old ./passwd.new
ça me sort la liste sans avoir besoin du while read user echo $user
ce qui simplifie encore plus.