Есть ли некоторый способ, которым я могу запустить (повторяющийся) ping, в то время как сеть недостижима?

Можно использовать:

set root='(hd0,msdos5)'
5
15.06.2014, 00:06
3 ответа

В скрипте оболочки можно использовать цикл:

failed=1 # any number not equal to zero
while [ $failed -ne 0 ]
do
   ping -n 8.8.8.8
   failed=$?
done
# after the  $? becomes "0" it will get out of the while loop
echo "ping succeeded"

, чтобы остановить печать соединения : Network is notдоступно message you can edit the line with ping like this:

ping -n 8.8.8.8 2> /dev/null

Or you can add a sleep in the loop to reduce the number of those messages.

The script can be упрощён до

while ! ping -n 8.8.8.8
do
    sleep 1
done

Which letts it be write in one line:

while ! ping -n 8.8.8.8; do sleep 1; done
6
27.01.2020, 20:36

Вы можете использовать fping с его опциями -l и -I вместо ping. Для этого необходимо знать имя интерфейса и запустить от имени root:

root@here:~# fping -l -I wlan0 -n 8.8.8.8

me@here:~$ sudo fping -l -I eth0 -n 8.8.8.8
1
27.01.2020, 20:36

AFAICT, ping не будет работать, если он не может открыть сокет на интерфейсе (потому что интерфейс не работает). Если вы проверите свои устройства с помощью ip link show, то увидите, какие устройства вверх или вниз.

Попробуйте сначала активировать сетевое устройство.

$ sudo ip link set <iface> up
$ ping -n 8.8.8.8

Я протестировал это на моем блоке Arch Linux с вниз Wi-Fi интерфейсом, и вверх виртуальным ethernet (IP-адрес не назначен) интерфейсом. В первом случае ping выходит, а во втором ping является непрерывным.

В противном случае используйте скрипт оболочки сетевого интерфейса.

.
1
27.01.2020, 20:36

Теги

Похожие вопросы