Как я могу заставить ping Linux показывать время ожидания запросов вместо того, чтобы пропустить вывод?
Так же, как Windows-версия пинга.
linux
networking
ping
Andre
источник
источник
Ответы:
fping не работает для меня ... В моем случае, большую часть времени я хочу видеть это в основном во время перезагрузки сервера ... это работает довольно хорошо в Windows ...
Я создаю простой скрипт (расширяющий ответ @entropo), чтобы помочь мне в этом, который может помочь ответить на этот вопрос:
https://gist.github.com/brunobraga/7259197
И использование это что-то вроде:
источник
Лучшее, что я обнаружил, это использование флага -O (обратите внимание, что он не работает на всех дистрибутивах - с использованием Linux Mint 17.1 Rebecca IPUTILS-PING 3: 20121221-4ubuntu1.1)
Со страницы руководства:
-O Report outstanding ICMP ECHO reply before sending next packet. This is useful together with the timestamp -D to log output to a diagnostic file and search for missing answers.
источник
ping
; на Debian Wheezy я получаю "ping: invalid option -- 'O'
", но на Джесси это работает, как вы заметили. Вы можете обновить свой ответ, чтобы включить эту информацию. (Я также представил предлагаемое изменение для использования предварительно отформатированного текста для вывода и информации из man-Когда я использую ping, чтобы увидеть, включен ли хост в скриптах оболочки, я делаю что-то вроде этого:
ping -W 1 -c 1 $HOST 2>&1 > /dev/null || (echo -n "dead!"; false) && command-that-needs-host-to-be-up
По сути, отправляет один ICMP, который истекает через секунду без вывода, и использует код выхода для контроля дальнейших действий.
источник
У обычного нет способа
ping
сделать это. Если вы пытаетесь что-то написать, у вас есть несколько вариантов:Если эхо-запрос не пройден,
$?
будет 1, если эхо-запрос успешен,$?
будет 0.Другой вариант использования,
fping
который работает так же, как Ciscoping
:источник
Приведенный выше скрипт bruno.braga работает просто отлично, однако лично я предпочитаю использовать псевдоним в профиле оболочки (например, .bashrc), чтобы он мог использоваться каждый день.
Мое решение ниже также вычисляет порядковый номер ECHO-запроса автоматически:
Вот пример вывода, когда хост нестабилен с таймаутом:
Конечно, недостатком является отсутствие статистики в конце при нажатии CTRL-C. При желании можно также рассчитать min / avg / max с помощью сценария оболочки, mdev находится далеко за рамками.
источник
Боюсь, но нет 100% -ного решения этого со стандартным пингом. Даже с ping -v для подробного вывода ping будет молчать в случае тайм-аутов. Вы можете попробовать использовать:
Это прекратит пинг через 2 секунды, а затем покажет количество переданных пакетов и потерю пакетов. Другой вариант будет использовать Mtr .
источник
источник
fping
это хорошо, и, кстати,-e
нет необходимости, когда-l
или-c
добавляется, может просто использоватьfping -l 8.8.8.8
, вывод тот же.Мне очень нравится сценарий оболочки от Бруно. Я добавил строку, чтобы создать файл со всеми сбоями.
echo -e "
date +'%Y/%m/%d %H:%M:%S'
- host $ host is \ 033 [0; 31mdown \ 033 [0m" >> ./lostpackets.txtисточник
Без скриптов ничего
ping -f -i 1 hostname
Преимущества : стандартная команда Linux - ничего для установки или сценария.
Недостатки :
С минимальным сценарием
Недостатки : у вас нет статистики в конце, и вы не можете использовать эти 3 варианта пинга:
-i
изменить интервал между отправкой пакетов (он жестко задан в 1 с)-W
изменить тайм-аут (он жестко запрограммирован на 1сек)-c
остановиться после отправки N пакетовКстати: это один из крайне редких примеров функциональности, который мне действительно не хватает в инструменте Linux CLI, но я нахожусь в инструменте windows. Исключение, которое подтверждает правило, как говорится :-)
источник
Если вы хотите выполнить непрерывный пинг, как окна и с отметкой времени, используйте этот. Не стесняйтесь заменить
192.168.0.1
своим собственным IP-адресомПример ответа ОК
Пример запроса истек
источник
Обычный пинг действительно показывает вам тайм-ауты. Глядя на значение seq = между пингами, вы можете узнать, сколько таймаутов
EG 3 тайм-аута произошли между вышеупомянутыми 2 пингами, так как первый был,
seq=8
а второй былseq=11
(9 и 10 были тайм-ауты)seq=sequence
.источник