Это старая версия документа!
pfSense
HowTo
Перазагрузка pfSense если не доступн Internet
Скрипт проверки доступности сервера DNS Yandex
1. Простой
В консоле pfSense
tee > inet_check.sh chmod +x inet_check.sh
Редактировать
#!/bin/sh ping -n -q -c 4 -t 3 78.88.8.8
Редактировать cron
crontab -e
Добавить в cron pfSense
*/10 * * * * /usr/local/bin/inet_check.sh
2. С логами
#!/bin/sh
# СКРИПТ ПРОВЕРКИ РАБОТЫ И АКТИВНОСТИ ИНТЕРНЕТ СОЕДИНЕНИЯ
# ОПРЕДЕЛЯЕМ ПЕРЕМЕННЫЕ, ПУТИ ДО ЛОГ-ФАЙЛОВ И ИСПОЛНЯЕМЫХ СКРИПТОВ
# ПУТЬ ДО ЛОГ-ФАЙЛА
LOG="/var/log/inet_check.log"
# ОПРЕДЕЛЯЕМ СЕРВЕР ДЛЯ ПРОВЕРКИ ДОСТУПНОСТИ ИНТЕРНЕТА
SERVER="77.88.8.8"
# ОПРЕДЕЛЯЕМ ПУТЬ ДО ИСПОЛНЯЕМОГО ФАЙЛА ПРОГРАММЫ PING
PING="/sbin/ping"
# ОПРЕДЕЛЯЕМ ПУТЬ ДО ИСПОЛНЯЕМОГО ФАЙЛА ПРОГРАММЫ REBOOT
REBOOT="/sbin/reboot"
# ПРОВЕРКА ИНТЕРНЕТА
restart() {
${PING} -q -c1 -t1 -s0 ${SERVER} >/dev/null 2>/dev/null
if [ $? -eq 0 ]; then
echo "$(date +%d-%m-%y\ %H:%M:%S) ТЕСТ PING ${SERVER} УСПЕШНО ВЫПОЛНЕН!" >> ${LOG}
exit 0
else
echo "$(date +%d-%m-%y\ %H:%M:%S) ОШИБКА!! ТЕСТ НЕУДАЧЕН!! --> REBOOT СЕРВЕРА" >> ${LOG}
${REBOOT}
fi
return 0
}
# СТАРТ - ОБЩЕЕ НАЧАЛО РАБОТЫ СКРИПТА
echo "=============================================================" >> ${LOG}
echo "$(date +%d-%m-%y\ %H:%M:%S) СТАРТ ПРОВЕРКИ ДОСТУПНОСТИ ИНТЕРНЕТА" >> ${LOG}
restart
exit 0