J'écris un sillage sur le script LAN pour un ensemble de nos ordinateurs de laboratoire. Nous avons sqlite db avec une liste des noms d'hôte, IP et MAC de l'ordinateur et actuellement je ping chacun d'eux avec '-c1' pour qu'il ne fonctionne pas sans fin - mais même cela prend un peu d'attente, existe-t-il un moyen plus rapide d'obtenir répondre plutôt que cingler? L'utilisation de ping semble ralentir un peu le script car il a besoin des réponses de ping pour continuer.
Merci beaucoup pour toutes suggestions!
la source
C'est pour cela que fping a été conçu. http://fping.sourceforge.net/
Vous devez analyser la sortie par la suite au lieu de vous fier à un code retour, mais c'est beaucoup plus rapide que de faire un ping normal.
la source
Cela ne fonctionnerait que pour un ou deux ordinateurs, mais si vous les connectez directement à l'ordinateur chargé de vérifier leur état, vous pouvez utiliser
ethtool
pour voir si le lien est actif ou non.la source
ethtool {network_interface} | grep "Link detected" | cut -f 3 -d ' '
reviendrayes
si une machine est connectée, etno
si ce n'est pas le cas.Qu'est-ce que vous pourriez faire? Envoyez une requête ping à l'adresse de diffusion, ce qui devrait entraîner le ping de tous les ordinateurs. Ensuite, vous pouvez vérifier cette liste par rapport à ce que vous avez dans SQLite pour vous assurer que tous les ordinateurs sont en marche.
À part cela, un ping est probablement le moyen le plus rapide de s'assurer qu'un ordinateur est réveillé sur un réseau. Comme mentionné dans l'autre réponse, cela ne fournit aucune donnée vraiment utile. Si vous avez la possibilité d'installer des scripts, vous pouvez ajouter un cronjob pour envoyer une requête ping à un serveur central, exécuter une tâche ou simplement renvoyer la liste des processus à un serveur central qui enregistrera la demande. Ensuite, il suffit de vérifier cela pour savoir si vous avez des problèmes sans avoir besoin de vérifier manuellement à chaque fois.
la source
Ganglia utilise le trafic de multidiffusion pour surveiller de nombreux hôtes dans un cluster, peut-être pourriez-vous utiliser quelque chose de similaire? Cela suppose que votre matériel réseau autorise le trafic de multidiffusion entre tous les hôtes et votre système de surveillance.
la source
J'ai eu le même problème et j'ai trouvé le script suivant (rapide et sale). Cela émet essentiellement tous les pings en tant que travaux séparés en parallèle et analysera un sous-réseau entier / 24 en 3 secondes; notez que pour une raison quelconque, je n'ai pas pris la peine de découvrir que je ne pouvais pas utiliser le code de résultat ping ici, mais grep -v a fait le travail:
la source
En C,
la source
J'ai trouvé
fping -r0 ...
pour fournir la réponse la plus rapide.L'
-r
option (réessayer) semble plus rapide que la similaire-c
(count). L'utilisation de-r0
résultats entraîne l'envoi d'un seul ping et la sortie est bien abrégée par rapport aux autres options.Sur mon système ...
Résulte en...
Un petit massage pour me débarrasser du
ICMP
(des) message (s) me donne ...En ce qui concerne la vitesse, le
fping
sur ce vieux Intel Dual-Core 1,8 GHz avec 4 Go de RAM est ...Et les
grep
et nesort
semblent ajouter que 0,001-0,004 au temps ...REMARQUES
ICMP
message ne se produit pas à chaque exécution.2>&1
est nécessaire d'empêcher leICMP
message de s'afficher dans la sortie lorsqu'il est envoyé à lastderr
place destdout
.la source