После того, как несколько раз столкнулся с тем, что в процессе настройки сети на удалённом хосте падала сеть полностью и потом было не просто востановить доступ, был придуман данный скрипт. На период дебага ставлю его в крон раз в 5 минут и дальше скрипт пингует гугл, если не получается, то он ставит заведомо рабочие настройки и применяет их
#!/bin/bash # Скрипт для востановления настроек сети на случай, если на сервере пропадёт интернет в следствии неправильной настройки сети # Для работы нужен ifupdow2, ставиться через apt-get install ifupdown2 host=${1:-'8.8.8.8'} # Хост который будет пинговатся, по умолчанию гугл или первый аргумент source='/etc/network/interfaces_work' # Заведомо рабочий конфиг сети destination='/etc/network/interfaces' # Системный конфиг сети fail_conf='/etc/network/interfaces_fail' # Сюда будут сложенные неудачные конфиги DATE=`date +"%H:%M %d/%m/%Y"` # Дата и время log=/home/network_restore.log # Лог файл result=$(ping -c 1 $host | grep % | cut -d ' ' -f6) # Пингуем и сохраняем результат if [[ "$result" = '0%' ]];then # Если всё ок echo $DATE ok >> $log # Логируем else # Если нет пинга echo $DATE fail >> $log # Логируем echo $DATE >> $fail_conf # Логируем echo >> $fail_conf # Просто для удобства echo >> $fail_conf echo >> $fail_conf echo '###################################################' >> $fail_conf cat $destination >> $fail_conf # Сохраняем неудачный конфиг cat $source > $destination # Переписываем ifdown -a # Гасим сеть ifup -a # Поднимаем сеть с новыми настройками # sleep 30 # result=$(ping -c 1 $host | grep % | cut -d ' ' -f6) # Пингуем и сохраняем результат # # if [[ "$result" = '0%' ]];then # Если всё ок # echo ok # # else # # reboot # Если не помогло, пробуем перегрузить систему # fi fi