Comment puis-je ping à un hôte avec un Perl one-liner avec Net::Ping?
En essayant d'intégrer le Perl suivant une ligne dans un script shell. Ce code fonctionne à l'intérieur d'un script Perl, mais pas comme un one-liner exécuté à partir d'un script shell.
J'ai essayé de remplacer $host
avec un vrai nom d'hôte avec pas de chance.
#!/bin/ksh
hosts="host1 host2 host3"
PERL=/usr/bin/perl
# Check to see if hosts are accessible.
for host in $hosts
do
#echo $host
$PERL -e 'use Net::Ping; $timeout=5; $p=Net::Ping->new("icmp", $timeout) or die bye ; print "$host is alive \n" if $p->ping($host); $p->close;'
done
Pourquoi êtes-vous à l'aide de perl au lieu de simplement
J'ai intégré cela dans un pays déjà écrit script shell qui je ne se soucient pas de port. Cela sert comme une pratique, toujours très rapide (qui est, il ne se bloque pas) one-liner qui fonctionne sur les plates-formes.
ping
?J'ai intégré cela dans un pays déjà écrit script shell qui je ne se soucient pas de port. Cela sert comme une pratique, toujours très rapide (qui est, il ne se bloque pas) one-liner qui fonctionne sur les plates-formes.
OriginalL'auteur XO. | 2010-10-18
Vous devez vous connecter pour publier un commentaire.
Les guillemets simples dans la coquille arrêter l' $host d'être interprété. De sorte que vous pouvez arrêter et redémarrer les guillemets simples:
Alternativement, vous pouvez passer de l'hôte en tant que paramètre à voir l'autre réponse.
OriginalL'auteur a'r
Essayer de remplacer
$host
:avec
$ARGV[0]
, le premier argument de ligne de commande:OriginalL'auteur OMG_peanuts
Si vous souhaitez utiliser Perl, puis utilisez l'interpréteur Perl à l'exécution de votre script.
Sinon, vous pourriez aussi bien utiliser la
ping
de commande directement à partir de la coquilleOriginalL'auteur ghostdog74