пятница, 13 июня 2008 г.

Получить статистику ping без завершения работы команды

Обычно, если не указывать значение параметра -c, ping посылает icmp echo до тех пор, пока не будет завершен, например, с помощью Ctrl-C:

0):stasikos@zombie:~$ ping ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=57 time=760 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=2 ttl=57 time=703 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=4 ttl=57 time=2391 ms
64 bytes from ya.ru (213.180.204.8): icmp_seq=5 ttl=57 time=1465 ms

--- ya.ru ping statistics ---
6 packets transmitted, 4 received, 33% packet loss, time 5399ms
rtt min/avg/max/mdev = 703.354/1329.923/2391.067/682.176 ms, pipe 3


Но однажды мне захотелось странного. Поставить ping с интервалом поболее, да на долгое время, чтобы оценить этот самый packet loss в больших масштабах. Ну и смотреть статистику, не тыкая каждый раз ctrl-c и не перезапуская его снова.


"Shorter current statistics can be obtained without termination of process with signal SIGQUIT." - гласит man ping. Посему...
0):stasikos@zombie:~$ ping -q -i 2 ya.ru
PING ya.ru (213.180.204.8) 56(84) bytes of data.
(^Z)
[1]+ Stopped ping -q -i 2 ya.ru
1):stasikos@zombie:~$ bg %1
[1]+ ping -q -i 2 ya.ru &
1):stasikos@zombie:~$ kill -QUIT %1
6/2 packets, 66% loss, min/avg/ewma/max = 609.963/740.967/839.220/871.972 ms

Опцию q я указал, чтобы строки, которые выводит ping, не мешали работе в шелле, пока ping работает в фоне.

Комментариев нет:

Отправить комментарий