ping 172.16.100.1PING 172.16.100.1 (172.16.100.1) from 172.16.120.131 : 56(84) bytes of data.64 bytes from 172.16.100.1: icmp_seq=1 ttl=64 time=396 ms64 bytes from 172.16.100.1: icmp_seq=2 ttl=64 time=388 ms64 bytes from 172.16.100.1: icmp_seq=3 ttl=64 time=378 ms64 bytes from 172.16.100.1: icmp_seq=4 ttl=64 time=401 ms64 bytes from 172.16.100.1: icmp_seq=5 ttl=64 time=411 ms--- 172.16.100.1 ping statistics ---5 packets transmitted, 5 received, 0% loss, time 4031msrtt min/avg/max/mdev = 378.082/395.313/411.911/11.559 ms
#!/bin/bashOUT=ping.out.$$HOST=www.google.comecho Log started `date "+%m/%d/%y %X"`>> $OUTwhile : ; dot=`ping -c 1 $HOST 2>/dev/null | awk '{if (NR == 2) print $7 " " $8}'`d=`date "+%X"`if (echo $t | grep time >/dev/null); then echo -n "$d " >> $OUTecho "$t" >> $OUTelse echo -n "$d " >> $OUTecho X >> $OUTfisleep 2done
t=`ping -c 1 $HOST 2>/dev/null | awk '{if (NR == 2) print $7 " " $8}'`
Код: [Вибрати] t=`ping -c 1 $HOST 2>/dev/null | awk '{if (NR == 2) print $7 " " $8}'`Поясніть будь ласка цей рядок.Що тут робиться, як і навщо?Я зрозумів лише ping -c 1 $HOST
В юніксі існує stdin, stdout та stderr, на stdout програми виводять звичайні повідомлення, а на stderr виводять повідомлення про помилки. Дескриптори цих файлів завжди є відповідно 0, 1, 2. Таким чином, конструкцією 2>/dev/null, ми вказуємо що всі повідомлення, які програма пише в stderr - ми перенаправляємо в /dev/null бо вони нас не цікавлять.
Що є стандартною поилкою для програми ping?Я думаю - щось на зразок "...destination host unreachable", правильно?