Bonjour a tous
Je reviens vers vous en espérant encore une fois être tiré d'affaire.
Voila, j'ai des lignes de log et je voudrais en 'printer' des infos avec un awk.
j'ai une expression régulière de définie mais je ne veux pas qu'elle s'applique lorsqu'elle est suivie d'un mot particulier, et là je sèche.
Exemple:
Fichier source :
Apr 8 16:43:39 ns37799 sshd[4984]: Failed password for root from 10.10.10.10 port 1234 ssh2
Apr 9 12:41:41 ns37799 sshd[1941]: Failed password for invalid user hangoutplanner from 10.10.10.10 port 1234 ssh2
Commande awk:
awk '/sshd\[.*\]: Failed password for / { print $1,$2, $3 " Valid User: " $9 " From: " $11 " : Failed "}' $fichier
je souhaite récupérer les lignes où le patern "sshd[****]: Failed password for" est présent mais pas lorsqu'il est suivi d'invalid. et bien entendu le valid user n'est pas forcement root.
pour avoir un résultat:
Apr 8 16:43:39 Valid User: root from 10.10.10.10 : Failed.
et non:
Apr 8 16:43:39 Valid User: root from: 10.10.10.10 : Failed.
Apr 9 12:41:41 Valid User: invalid from: hangoutplanner :failed.
Merci d'avance.
Partager