Je suis en train d'essayer d'écrire un script en awk pour recuperer les adresses IP contenu dans mon fichier /etc/hosts. (j'ai recupere le script sur un site et je l'ai adapté au traitement de mon fichier hosts).
J'obtiens bien une liste à l'écran de ces serveurs, mais je voudrais aussi faire un PING de chacun de ces serveurs pour vérifier leur connexion. juste après le print "Adresse IP" $1.
Mais je ne connais rien à la syntaxe dans awk. Comment peut on recuperer les zones $1...$10 dans des variables pour les utiliser en appelant des programmes externes (ping en l' occurence).
Voici mon script, pouvez vous m'aider ?
Merci d'avance.
#!/usr/bin/awk -f
BEGIN {
print "Début du script"
nbComment=0
nbServeur=0
}
(/^#/ || /^$/){
nbComment++
}
{
nbServeur++
print "Adresse IP : " $1
}
END {
print "Nb Lignes Traitées :" nbServeur " dont " nbComment" Lignes de commentaires."
}
# system
Posté par botio2 . Évalué à 1.
http://www.parinux.org/ressources/supports-confs/awk/commandes.html(...)
# 2 méthodes
Posté par SamG . Évalué à 2.
En gros tu as 2 méthodes:
- avec system:
ret = system("ping " $1)
print "retour", ret
- avec le pipe:
cmd = "ping " $1
while ((cmd | getline ligne) > 0)
print ligne
close(cmd)
La 1ère méthode devrait te suffire.
un "ping -c 1 toto" te renvoit 0 si c'est ok
# Sans awk
Posté par nojhan (site web personnel, Mastodon) . Évalué à 3.
SERVEURS=`cat /etc/hosts |grep '\.1'|cut -d " " -f 1`
for i in $SERVEURS; do
echo -n $i
ping -c 1 -q $i|grep 'transmitted'
done;
[^] # Re: Sans awk
Posté par nojhan (site web personnel, Mastodon) . Évalué à 1.
# SUPER MERCI A TOUS
Posté par OCastien . Évalué à 1.
D'une manière générale, comment peut on affecter à une variable de mon script, la valeur de "la zone" $1 de awk ?
MaVariable = awk '{ print $1 }' /etc/Monfichier
cette ligne ne fonctionne pas.
[^] # Re: SUPER MERCI A TOUS
Posté par SamG . Évalué à 1.
MaVariable=`awk '{ print $1 }' /etc/Monfichier`
[^] # Re: SUPER MERCI A TOUS
Posté par OCastien . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.