Мне просто нужно запустить скрипт оболочки, когда доступно интернет-соединение. Можно ли следить за доступностью интернет-соединения с помощью сценариев оболочки?
ping google.com
- это простая команда, чтобы заставить его работать. Но как я могу это посмотреть?
Я думаю, что Вы могли бы просто искать
ping -c1 -W1 google.com >/dev/null && command
, Который выполнится command
, только если ping был успешен.
Если наблюдение означает смотреть на скорости передачи, у меня есть два решения.
ifstat -S
sudo iftop
Вы могли сделать что-то вроде этого
#!/bin/bash
while [ 1 ]; do
TEST=$(nmcli -f STATE dev status | awk '/connected/ {print 1}')
if [ $TEST ]; then
# place whatever you wanna do here if connection is available
fi
sleep 0.25
done
nmcli
, имеет команду dev status
, которая показывает состояние сетевых интерфейсов. Так, мы проверяем только столбец состояния вывода с -f STATUS
флаг формата. Если у нас есть соединение, независимо если это - Ethernet или Wi-Fi, мы устанавливаем ТЕСТОВУЮ переменную на 1, имея в виду верный. Затем if . . then . . .fi
оператор, который на самом деле делает задание.