Если то, что Вы действительно хотите, должно только подключить ноутбук к Вашей сети, проверьте, имеет ли это слот PCMCIA или PC Card. Большинство ноутбуков, даже очень старые, должно иметь это. Затем можно найти подержанную плату Ethernet PCMCIA почти для ничего.
Из меню ping
(выделено мое):
Когда заданное количество пакетов отправлено (и получено) или если программа завершается с помощью SIGINT, отображается краткая сводка. Краткая текущая статистика может быть получена без завершения процесса с помощью сигнала SIGQUIT.
Так что это сработает, если вы не против, чтобы ваша статистика была чуть менее многословной:
# the second part is only for showing you the PID
ping 8.8.8.8 & jobs ; fg
<... in another terminal ...>
kill -SIGQUIT $PID
Краткая статистика выглядит так:
19/19 packets, 0% loss, min/avg/ewma/max = 0.068/0.073/0.074/0.088 ms
Если ваш ping не поддерживает полезный SIGQUIT (AIX, Solaris), вот одно обходное решение -- бесконечный цикл ping, в котором каждый ping делает только (например) 10 пингов, так что вы можете видеть промежуточные результаты.
while :; do ping -c 10 $HOST; done
Чтобы остановить это, Control-C может только убить команду ping
; вам может понадобиться приостановить, а затем убить задание (Control-z; kill %
).
Это, конечно, не дает истинной статистики работы - только за время этих 10 пингов.
Есть еще один простой способ получить статистику проверки связи во время его выполнения: Просто нажмите Ctrl + | ( вертикальная косая черта или его также называют конвейерной линией)
Лично я использую его очень часто, попробуйте:
64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=0.893 ms
64 bytes from 192.168.1.1: icmp_seq=23 ttl=64 time=0.862 ms
64 bytes from 192.168.1.1: icmp_seq=24 ttl=64 time=3.18 ms
64 bytes from 192.168.1.1: icmp_seq=35 ttl=64 time=0.877 ms
64 bytes from 192.168.1.1: icmp_seq=36 ttl=64 time=0.866 ms
**36/36 packets, 0% loss, min/avg/ewma/max = 0.832/0.993/0.930/3.185 ms**
64 bytes from 192.168.1.1: icmp_seq=37 ttl=64 time=0.909 ms
64 bytes from 192.168.1.1: icmp_seq=38 ttl=64 time=2.03 ms
64 bytes from 192.168.1.1: icmp_seq=39 ttl=64 time=0.839 ms
64 bytes from 192.168.1.1: icmp_seq=40 ttl=64 time=0.880 ms
Попробуйте Ctrl + 4
Здесь показана вот такая строка:
312/312 packets, 0% loss, min/avg/ewma/max = 0.312/1.236/0.505/208.655 ms
Отправьте сигнал SIGQUIT
.
Пример вывода:
64 bytes from localhost (127.0.0.1): icmp_seq=138 ttl=64 time=0.021 ms
64 bytes from localhost (127.0.0.1): icmp_seq=139 ttl=64 time=0.022 ms
139/139 packets, 0% loss, min/avg/ewma/max = 0.014/0.022/0.022/0.057 ms
64 bytes from localhost (127.0.0.1): icmp_seq=140 ttl=64 time=0.090 ms
64 bytes from localhost (127.0.0.1): icmp_seq=141 ttl=64 time=0.025 ms
CTRL + \ = quit
согласно stty -a
.
Они также работают:CTRL + | ; CTRL + 4 ;
kill -SIGQUIT <pid> [...]
ps -o pid= -C ping | xargs -r kill -SIGQUIT
while sleep 20; do ps -o pid= -C ping | xargs -r kill -SIGQUIT; done
while sleep 20; do ps -o pid= -C ping | xargs -r kill -SIGQUIT; done &
Отправьте сигнал INFO
.
Пример вывода при отправке через CTRL + T:
64 bytes from 127.0.0.1: icmp_seq=137 ttl=64 time=0.328 ms
64 bytes from 127.0.0.1: icmp_seq=138 ttl=64 time=0.028 ms
load: 0.18 cmd: ping 62483 [select] 144.69r 0.00u 0.01s 0% 2256k
139/139 packets received (100.0%) 0.018 min / 0.072 avg / 0.505 max
64 bytes from 127.0.0.1: icmp_seq=139 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=140 ttl=64 time=0.027 ms
Пример вывода при отправке черезkill
:
64 bytes from 127.0.0.1: icmp_seq=137 ttl=64 time=0.328 ms
64 bytes from 127.0.0.1: icmp_seq=138 ttl=64 time=0.028 ms
139/139 packets received (100.0%) 0.018 min / 0.072 avg / 0.505 max
64 bytes from 127.0.0.1: icmp_seq=139 ttl=64 time=0.116 ms
64 bytes from 127.0.0.1: icmp_seq=140 ttl=64 time=0.027 ms
CTRL + T = status
согласно stty -a
.
kill -INFO <pid> [...]
ps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print $2}' | xargs -r kill -INFO
printf "while ({ sleep 20 })\nps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print \0442}' | xargs -r kill -INFO\nend\n" | tcsh
printf "while ({ sleep 20 })\nps -o comm= -o pid= | egrep '^ping[[:space:]]' | awk -F' ' '{print \0442}' | xargs -r kill -INFO\nend\n" | tcsh &
Спасибо @pmos за ваш ответ, который в первую очередь зародил мою идею периодического метода, а также за все остальные ответы и комментарии, которые способствовали этому.
Спасибо, @VictorYarema, за предложение превратить мой комментарий в реальный ответ. Суть метода в исходном комментарии та же,но со временем эволюционировало следующим образом:
-r
в xargs
, чтобы предотвратить запуск kill
без pid при отсутствии результатов отps
ps
, я использовал параметр -o pid=
, чтобы сделать текст заголовка столбца пустым вместо h
, поскольку h
имеет разные значения для Linux и FreeBSD. ps
поддерживает явный параметр --no-headers
в Linux, это не так для FreeBSD sleep
перемещена в условие проверки while
awk