Intentando integrar el siguiente Perl one-liner en un script de shell. Este código funciona dentro de una secuencia de comandos de Perl, pero no como una sola línea ejecutada desde un script de shell.¿Cómo puedo hacer ping a un host con un Perl one-liner con Net :: Ping?
He intentado reemplazar $host
con un nombre de host real sin suerte.
#!/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
¿Por qué utiliza Perl en lugar de simplemente 'ping'? –
He integrado esto en un script de shell ya escrito que no me importa portar. Esto sirve como una solución conveniente, consistentemente rápida (es decir, no se bloquea) que funciona en todas las plataformas. –