Un script c'est un fichier texte ou tu écris exactement ce que tu taperais dans la console
Les 2 différences :
-ce fichier comment forcément par !#/bin/sh
-ce ficher doit avoir des droits en exécution pour se comporter "comme un programme", sinon ca reste un simple fichier txt. Pour le rendre exécutable, tu tapes dans une console chmod +x monfichier
Toutes les heures cron doit lancer un script qui :
-lit ton fichier contenant les ip
-les ping
-écrit les résultats ailleurs
Lire le fichier :
cat toto.txt : envoie le contenu du fichier ligne par ligne sur la sortie standard
Donc si tu testes dans une console un truc comme :
for i in `cat toto.txt` do echo "------> $i" done |
Tu verras toutes tes lignes précédées de ------>
En effet `cat toto.txt` représente "ce que renvoie" cat toto.txt, donc dans la boucle for la variable $i contient à chaque itération une ligne de toto.txt
Variante :
while read i do echo "------> $i" done < toto.txt |
Même résultat, read est nourri par le contenu de toto.txt (le < toto.txt dit en gros "cette commande recevra en entrée toto.txt) et $i contient à chaque itération une ligne de toto.txt
Pinger l'ip :
Si i contient l'adresse ip, on peut faire
En rajoutant quelques options parce que sinon de base ping dure indéfiniment
Récuperer le résultat de ping :
Comme avant, `"$i"`représente "ce que renvoie" ping "$i", on peut le mettre directement dans une variable (note : quand je mets un truc dans une variable je ne mets pas $ devant, d'où mon output=azeazezae ici. Par contre pour consulter le contenu de cette variable on utilise bien $output)
Si ce que renvoie ping est trop verbeux et que tu ne veux que le temps en ms, tu peux soit chercher dans le man de ping s'il existerait pas une option qui rend ping moins verbeux, soit filtrer un peu cette sortie pour garder ce que tu veux.
Pour filtrer (plusieurs possibilités) il faut se renseigner sur grep, sed, cut (un peu technique pour débuter)
Stocker le résultat :
echo "toto ping en : $variable secondes" >> resultats.txt
écrit toto ping en : 0.323 secondes à la dernière ligne de resultats.txt (si $variable contient 0.323 évidemment).
Donc en répétant l'opération on rajoute toujours à la fin du même fichier.
Bon courage
PS : et pour obtenir l'heure courante, tu peux utiliser la commande date
Message édité par Xavier_OM le 20-12-2006 à 15:19:18
---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.