Terminal pogryzł człowieka: fping
Osoby piszące przeróżne skrypty jak i osoby po prostu ciekawskie, potykają się niekiedy o takie prozaiczne rozwiązania jak np. watchdog kontrolujący dostępność konkretnych adresów IP lub hostów. Oczywiście pierwsze co się ciśnie pod palce podczas pisania skryptu to komenda ping i odpowiednie parsowanie wyników jej działania. Jednak zamiast wymyślać koło na nowo i pisać skomplikowane epopeje w Bashu, można skorzystać z fping.
Narzędzie fping znajdziemy w standardowych repozytoriach większości dystrybucji. Zasada jego działanie różni się od zwykłego pinga w sposób zasadniczy – fping jest dedykowany masowemu testowaniu wielu hostów na raz. Na dodatek, przejrzysty wynik działania tej komendy daje się w banalny sposób „obrobić” w naszych skryptach. A przecież wszyscy lubimy upraszczać sobie życie.
Jak to działa? Nic skomplikowanego:
$# fping onet.pl wp.pl interia.pl google.com
onet.pl is alive
wp.pl is alive
interia.pl is alive
google.com is alive
W domyślnym trybie fping poinformuje nas po prostu, czy dane hosty odpowiadają na wysłane zapytanie icmp. Nic ciekawego? Ciekawiej to się robi dalej. Fping możemy nakarmić listą hostów zapisaną w jakimś pliku tekstowym:
$# fping < serwery.txt
wp.pl is alive
onet.pl is alive
interia.pl is alive
google.com is alive
Jeżeli to nam nie wystarcza, możemy nakazać programowi wyświetlić adresy IP odpytanych hostów (lub na odwrót) i czas wędrówki pakietu:
$# fping -e -A < serwery.txt
212.77.98.9 is alive (33.4 ms)
213.180.141.140 is alive (20.5 ms)
217.74.65.23 is alive (11.1 ms)
173.194.112.71 is alive (44.5 ms)
Gdyby i to była niewystarczająca forma informacji jaką chcemy otrzymać, można wspomóc się innymi opcjami fpinga. Jest to całkiem pokaźna lista i znajdziemy na niej np.:
- -a : wyświetlanie informacji nt. wszystkich hostów,
- -u : tylko hostów niedostępnych,
- -A : wyświetlanie adresów IP zamiast nazw,
- -d : wyświetlanie nazw zamiast adresów IP,
- -c ilość: ilość wysyłanych pakietów icmp,
... i wiele wiele innych.