Оказалось все очень просто.ping <ip|url> -c <packets_count>
где:<ip|url> - IP или URL адресip - IP-адрес (например 8.8.8.8 или 192.168.0.1)url - URL-адрес (например google.com)<packets_count> - количество отправленных пакетов
В следующем примере мы пингуем google.com:ping google.com -c 3
Вывод команды приводить не буду для экономии места, кому нужно, смотрите на PasteBin
Можно пропинговать и по IP, например, локальный роутер:ping 192.168.0.1 -c 3
Вывод, опять же на PasteBin
Внимание! Количество отправленных пакетов (-с <число>), если вы используете ping в скрипте bash нужно указать обязательно, иначе команда ping никогда не прекратит свою работу и завесит скрипт, в отличии от команды ping в Windows (она по умолчанию посылает 5 пакетов и прекращает работу).
Естественно, для анализа работы ping в скрипте, нам потребуются коды возврата.
К сожалению, в официальном man для команды
ping их, почему-то забыли указать.0 - Success (хоть один из пакетов дошел до адреса)
1 - No reply (не один из пакетов до пингуемого адреса не дошел)
2 - Other error (другая ошибка, в большинстве случаев - "сеть недоступна").
На всякий случай
Если произошла ошибка с кодом
2, то команда ping выводит на stderr сообщение об ошибке, например:ping 8.8.8.8 -c 3
connect: Network is unreachableping является полуинтерактивной командой, и показывает параметры отправленных пакетов (см. на PasteBin), если это не нужно, можно отключить вывод стандартным способом, перенаправив вывод команды ping из stdin и stderr в /dev/null, например:ping 8.8.8.8 -c 3 >/dev/null 2>/dev/nullгде:
>/dev/null - перенаправление stdin в нуль-устройство2>/dev/null - перенаправление stderr в нуль-устройствоПростейшее использование команды
ping в скрипте:#!/bin/bash
#testping
# $1 - IP or URL address
ping $1 -c 3 >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
echo "Pinging!"
else
echo "Not pinging!"
fiКопия на PasteBin
smallwolfie@wolfschanze:~/nettest$ ./testping 8.8.8.8
Pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping 666.666.666.666
Not pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping 192.168.0.55
Not pinging!
smallwolfie@wolfschanze:~/nettest$ ./testping example.org
Pinging!Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2022/10/06/lin