мое первое сообщение здесь.
Я сделал сценарий, которые предоставляют сообщения о моей сети каждые 5 минут. Сценарий прост и хорошо работает кроме тех случаев, когда существуют проблемы в моей сети. Сценарий работает в Сервере Ubuntu 18.04.
Моя строка для команды Ping:
ping -w 300 192.168.1.216
Проблема состоит, когда у меня есть потери пакетов, остановка ping сразу, не заканчивает эти 300 секунд (5 минут) выполненный. Я проверил онлайн и везде но я не смог найти решение заставить ping продолжать бежать, когда существуют потерянные пакеты. Это - пример:
ping -w 300 192.168.1.216
PING 192.168.1.216 (192.168.1.216) 56(84) bytes of data.
64 bytes from 192.168.1.216: icmp_seq=1 ttl=128 time=2.29 ms
64 bytes from 192.168.1.216: icmp_seq=2 ttl=128 time=4.14 ms
64 bytes from 192.168.1.216: icmp_seq=3 ttl=128 time=17.9 ms
64 bytes from 192.168.1.216: icmp_seq=4 ttl=128 time=40.6 ms
64 bytes from 192.168.1.216: icmp_seq=5 ttl=128 time=38.6 ms
From 192.168.1.2 icmp_seq=30 Destination Host Unreachable
From 192.168.1.2 icmp_seq=31 Destination Host Unreachable
From 192.168.1.2 icmp_seq=32 Destination Host Unreachable
--- 192.168.1.216 ping statistics ---
33 packets transmitted, 5 received, +3 errors, 84% packet loss, time 32657ms
rtt min/avg/max/mdev = 2.295/20.738/40.659/16.379 ms, pipe 4
Спасибо.
ПРИЧИНА РЕДАКТИРОВАНИЯ: Добавьте полный код сценария.
Полный код сценария:
Location="XXX"
host="192.168.6.1"
while true
do
result=$(ping -w 300 -q $host)
sendemail \
-f "xxxx@gmail.com" \
-u "XXX 5 Minutes Network Report" \
-t "pingreport@gmail.com" \
-s "smtp.gmail.com:587" \
-o tls=yes \
-xu "xxxx@gmail.com" \
-xp "password" \
-m "$result"
done
Это должно проверить состояние нашей VPN. Как я сказал, очень простой сценарий. Я использую-c 1 ping, как предложено для чрезвычайного, который сообщит нам, существуют ли проблемы возможности соединения в VPN как можно скорее.
Я полагал бы, что изменение Вашего сценария работает ping -c 1 <ip-address>
каждые пять минут, вместо того, чтобы полагаться ping
двоичный файл для обеспечения того поведения. Затем можно также проверить статус возврата ($?
) определить, успешно выполнилось ли это или перестало работать.
Было бы полезно, если Вы также отправляете свой сценарий, так, чтобы контекст Вашей проблемы мог быть более понятным.