Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1799 connectés 

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script de ping

n°872461
renaud-twi​ngo
Dans ma cabane au Canada
Posté le 20-12-2006 à 12:09:57  profilanswer
 

Gros débutant sous Linux, je suis en train de découvir les joies de Linux et plus précisement de Debian.
Pour mettre le pied à l'etrier, je souhaite réaliser un script mais je n'ai aucune idée sur la façon de procéder:
 
1ère étape:
J'ai un fichier texte (IP.txt) avec une liste d'IP publiques (séparées par un retour chariot) que je souhaite pinguer pendant 1 Minute toutes les heures sur une semaine et récupérer les temps de réponse dans un fichier texte (avec les heures d'execution)
 
2ème étape:
j'ai 3 fichiers, dont 2 fichiers texte, l'un contenant les IP (IP.txt), l'autre contenant des mots de passe (MDP.txt) et je souhaite uploader puis downloader le 3ème fichier (test.tar.gz) en SCP sur les machines qui sont dans IP.txt en utilisant un login toujours identique (ex.: test) et les mots de passe associés dans le fichier MDP.txt (séparées par un retour chariot). Le but est de récupérer les temps d'upload/download dans un fichier texte avec les heures d'execution.
 
J'imagine que ce genre de scripts permettant de qualifier un accès Internet distant doit exister, mais je n'ai pas trouvé grand chose...
Merci d'avance pour votre aide  :jap:  
 
 

mood
Publicité
Posté le 20-12-2006 à 12:09:57  profilanswer
 

n°872463
Fork Bomb
Obsédé textuel
Posté le 20-12-2006 à 12:12:54  profilanswer
 

renaud-twingo a écrit :

Gros débutant sous Linux, je suis en train de découvir les joies de Linux et plus précisement de Debian.
Pour mettre le pied à l'etrier, je souhaite réaliser un script mais je n'ai aucune idée sur la façon de procéder:

 

1ère étape:
J'ai un fichier texte (IP.txt) avec une liste d'IP publiques (séparées par un retour chariot) que je souhaite pinguer pendant 1 Minute toutes les heures sur une semaine et récupérer les temps de réponse dans un fichier texte (avec les heures d'execution)


Faut demander à cron, c'est son boulot.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
n°872507
renaud-twi​ngo
Dans ma cabane au Canada
Posté le 20-12-2006 à 14:35:24  profilanswer
 

OK pour le Crontab, mais là ou j'ai plus de mal c'est pour le script...

n°872513
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 20-12-2006 à 15:08:04  profilanswer
 

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

ping "$i"


En rajoutant quelques options parce que sinon de base ping dure indéfiniment

  


Récuperer le résultat de ping :

output=`ping "$i"`


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  :hello:
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.
n°872527
Taz
bisounours-codeur
Posté le 20-12-2006 à 15:57:30  profilanswer
 

fping
smokeping

n°872641
renaud-twi​ngo
Dans ma cabane au Canada
Posté le 21-12-2006 à 01:50:13  profilanswer
 

Merci pour vos réponses.  :)  
Pour réaliser ce que je veux faire jeme suis tourné vers fping.
Voici la commande que je lance:
fping -C3 -q -f /home/admin/IP.txt >> tdr.txt
Le problème est que cette commande n'ecrit rien dans le fichier text (a cause du commutateur q pour quiet).
Si je vire -q j'ai un fichier de la forme:
 
217.146.186.51 : [1], 84 bytes, 33.2 ms (33.1 avg, 0% loss)
209.85.129.99  : [2], 84 bytes, 22.9 ms (22.8 avg, 33% loss)
 
Par contre, dans tous les cas, à la fin de son execution, fping affiche des stats des temps de réponse sous la forme:
 
209.85.129.99  : 23.54 23.34 23.95 22.87 23.46
217.146.186.51 : 33.20 33.32 33.46 33.08 33.45
 
C'est exactement ce que je veux récuperer, mais impossible...
 
Vous avez une idée  :??:

n°872735
Taz
bisounours-codeur
Posté le 21-12-2006 à 11:55:20  profilanswer
 

si c'est affiché, c'est bien que tu l'as récupéré ...

n°872741
renaud-twi​ngo
Dans ma cabane au Canada
Posté le 21-12-2006 à 12:02:32  profilanswer
 

Ben non, essai de recuperer dans un fichier text le retour de la commande suivante:
fping -C3 -q www.google.fr
Et tu sera surpris du résultat!  :pt1cable:

Message cité 1 fois
Message édité par renaud-twingo le 21-12-2006 à 12:03:03
n°872766
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 21-12-2006 à 14:00:29  profilanswer
 

renaud-twingo a écrit :

Ben non, essai de recuperer dans un fichier text le retour de la commande suivante:
fping -C3 -q www.google.fr
Et tu sera surpris du résultat!  :pt1cable:

 

Un programme peut avoir 2 output :
- la sortie standard (stdout) où on met les messages
- l'erreur standard (stderr) où on met les erreurs
De base tout finit sur la console (en général il faut pouvoir tout lire, messages et erreurs).

 

La redirection > envoie la sortie standard (stdout) dans un fichier, mais uniquement la sortie standard.
Exemple :

ls un_fichier_qui_n'existe_pas > toto.txt

     
Tu vois que le message d'erreur s'affiche quand même

  

Si tu veux récupérer l'erreur standard, tu peux faire

ls un_fichier_qui_n'existe_pas 2> toto.txt


2> redirige le flot numéro 2 (stderr, l'erreur standard)

 


 :hello:


Message édité par Xavier_OM le 21-12-2006 à 14:01:21

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°873365
renaud-twi​ngo
Dans ma cabane au Canada
Posté le 23-12-2006 à 21:47:28  profilanswer
 

Ca marche!
Merci beaucoup Xavier_OM, je ne connaissais pas cette subtilité (novice que je suis)...
 :jap:


Message édité par renaud-twingo le 23-12-2006 à 21:47:51

Aller à :
Ajouter une réponse
 

Sujets relatifs
Créer un script refusant l'affichage d'anim vectoriel sur une page webrecuperer le PID d'un script
[ Script ][ Archivage ] Remplacer *.x par *.x.7zScript de sauvegarde sur bande
Un script pour changer de resolution sous GNOME?Vérouiller une table MySQL par script Bash
Ping misérable uniquement pour jeu en reseauNetSaint : pb script check_ping
[Linux] IPchains, script de Ping 
Plus de sujets relatifs à : Script de ping


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR