comment utiliser ping dans un script
Je veux un script bash qui va faire:
for c in computers:
do
ping $c
if ping is sucessfull:
ssh $c 'check something'
done
Si je ne ssh
et l'ordinateur est iresponsive, il prend une éternité pour le délai d'attente. Je pensais donc à l'aide de la sortie de ping
pour voir si l'ordinateur est en vie ou non. Comment dois-je faire? D'autres idées seront les grands aussi
source d'informationauteur Guy | 2009-11-13
Vous devez vous connecter pour publier un commentaire.
Utilisation
ping
'valeur de retour:ping
se terminera avec la valeur 0 si seul ping (-c 1
) succceeds. Sur une table de ping timeout, ou si$C
ne peut pas être résolu, elle va sortir avec une valeur non nulle.Utiliser le
-w
commutateur (ou-t
sur FreeBSD et mac OS X) sur leping
de commande, puis inspectez la commande de valeur de retour.Vous pouvez régler le paramètre que vous passez avec
-w
si les hôtes vous vous connectez à sont loin et le temps de latence est plus élevé.De
man ping
:Pas tous les environnements de réseau permettent de ping à traverser (même si beaucoup le font) et pas tous les hôtes qui répondent à une requête ping. Je recommande de ne pas utiliser la commande ping, mais au lieu de définir le délai de connexion ssh:
J'ai écrit ce script il ya 10 ans:
http://www.win.tue.nl/~rp/bin/rshall
Vous n'aurez probablement pas besoin de la partie où il détermine chaque hôte accessible et itère sur chaque d'entre eux.
À l'aide de 64 valeur comme outil de mesure n'est pas logique. Il est préférable d'utiliser le numéro de reçu/la perte de paquets au lieu.
Ce script devrait fonctionner:
Voici mon hack:
Ne vous fiez pas à
ping
. Pourquoi ?- Succès de la
ping
ne vous garantit pas un succèsssh
accès. Vous pouvez toujours ajouterping
test ainsi, au début de ce script et de sortie si la commande ping échoue et ne rien faire à partir de ci-dessus.Ci-dessus
bash
extrait de script, vérifie si le périphérique que vous essayez del'accès a un port SSH ouvert pour les clients(vous) pour vous connecter à. Nécessite
nmap
package à installer.Je ne comprends pas pourquoi vous voulez
ssh
en plusieurs ordinateurs dans le script. Mais, mine de qui fonctionne pour un ssh sur un appareil et peut être modifié pour répondre à vos besoins.L'utiliser dans votre bash boucle: