Aide sur script Awk
ldesdes
-
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
asevere Messages postés 13095 Date d'inscription Statut Webmaster Dernière intervention -
Bonsoir,
Je me penche actuellement sur un script pour récupérer les adresses IP des personnes qui tentent de s'authentifier en SSH sur mon serveur (authentification qui echouent)
J'ai un petit soucis avec la commande awk.
Voici ci-dessous la version qui fonctionne :
cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -F ' ' '($2=="19") && ($3 ~ /^19:26/) {print $13}'
Et voici la version qui ne fonctionne pas :
jour="19"
heure="19"
minute="26"
cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -F ' ' '($2=="$jour") && ($3 ~ /^$heure:$minute/) {print $13}'
Si quelqu"un a une idée parce que j'ai tout essayé et je ne vois vraiment pas !
Merci.
Je me penche actuellement sur un script pour récupérer les adresses IP des personnes qui tentent de s'authentifier en SSH sur mon serveur (authentification qui echouent)
J'ai un petit soucis avec la commande awk.
Voici ci-dessous la version qui fonctionne :
cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -F ' ' '($2=="19") && ($3 ~ /^19:26/) {print $13}'
Et voici la version qui ne fonctionne pas :
jour="19"
heure="19"
minute="26"
cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -F ' ' '($2=="$jour") && ($3 ~ /^$heure:$minute/) {print $13}'
Si quelqu"un a une idée parce que j'ai tout essayé et je ne vois vraiment pas !
Merci.
2 réponses
-
Salut
un coup d'oeil rapide au man en cherchant "variable" t'aurait donné la réponse ;)
Essaye ça:jour="19" heure="19" minute="26" cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -v j=$jour -v h=$heure -v m=$minutes -F ' ' '($2==j) && ($3 ~ /^h:m/) {print $13}'++
-
Salut,
Essaie comme ça :cat /var/log/messages | grep sshd | grep "Failed password for invalid user" | awk -F ' ' '($2=='$jour') && ($3 ~ /^'$heure':'$minute'/) {print $13}'Il faut "quoter" chaque morceau du programme "awk" pour que le shell puisse continuer à accéder aux variables.