ping
nos permite conocer los tiempos de respuesta.
La opción -c 1
limita el número de paquetes de prueba a uno.
Veamos un ejemplo de uso del comando ping
:
$ ping -c 1 instituto PING instituto (193.145.130.147): 56 data bytes 64 bytes from 193.145.130.147: icmp_seq=0 ttl=63 time=0.7 ms --- instituto ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 0.7/0.7/0.7 msEn este otro ejemplo vemos como es una respuesta negativa:
$ ping -c 1 thatmachine PING thatmachine (193.145.125.192): 56 data bytes --- thatmachine ping statistics --- 1 packets transmitted, 0 packets received, 100% packet lossSupongamos que pueda ocurrir que el comando que estamos lanzando, en este caso
ping
, en ocasiones no termine. En el siguiente ejemplo
se muestra como limitar
el tiempo de espera por ping
y eliminar la jerarquía de procesos
creada.
lhp@nereida:~/Lperl/src$ cat -n myping2.pl 1 #!/usr/bin/perl -w 2 use strict; 3 4 my @machines = @ARGV; 5 my ($m, $code) = ("", ""); 6 7 local $SIG{ALRM} = sub { die "too long"; }; 8 9 for $m (@machines) { 10 eval { 11 alarm(1); 12 $code = `ping -c 1 $m`; 13 alarm(0); 14 }; 15 if (defined($@) and ($@ =~ /too long/)) { 16 print "El acceso a $m toma demasiado tiempo.\n"; 17 system('ps -fA | grep ping'); 18 19 print "*************************\n"; 20 local $SIG{HUP} = 'IGNORE'; 21 kill 'HUP', -$$; 22 system('ps -fA | grep ping'); 23 } 24 else { 25 print "From $m:\ncode = $code\n\n"; 26 } 27 }Al ejecutar el programa obtenemos una salida como esta:
lhp@nereida:~/Lperl/src$ ./myping2.pl www.google.com beowulf www.yahoo.com From www.google.com: code = PING www.l.google.com (209.85.129.104): 56 data bytes 64 bytes from 209.85.129.104: icmp_seq=0 ttl=240 time=73.0 ms --- www.l.google.com ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 73.0/73.0/73.0 ms El acceso a beowulf toma demasiado tiempo. lhp 2430 8353 0 15:32 pts/14 00:00:00 vi myping2.pl lhp 5513 31559 1 16:07 pts/15 00:00:00 /usr/bin/perl -w ./myping2.pl \ www.google.com beowulf www.yahoo.com lhp 5515 5513 0 16:07 pts/15 00:00:00 ping -c 1 beowulf lhp 5516 5513 0 16:07 pts/15 00:00:00 sh -c ps -fA | grep ping lhp 5518 5516 0 16:07 pts/15 00:00:00 grep ping ************************* lhp 2430 8353 0 15:32 pts/14 00:00:00 vi myping2.pl lhp 5513 31559 1 16:07 pts/15 00:00:00 /usr/bin/perl -w ./myping2.pl \ www.google.com beowulf www.yahoo.com lhp 5515 5513 0 16:07 pts/15 00:00:00 [ping] <defunct> lhp 5519 5513 0 16:07 pts/15 00:00:00 sh -c ps -fA | grep ping lhp 5521 5519 0 16:07 pts/15 00:00:00 grep ping From www.yahoo.com: code = PING www.yahoo-ht3.akadns.net (69.147.114.210): 56 data bytes 64 bytes from 69.147.114.210: icmp_seq=0 ttl=46 time=148.3 ms --- www.yahoo-ht3.akadns.net ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 148.3/148.3/148.3 ms
Casiano Rodríguez León