Где-то в Интернете нашел баш скрипт который перегружает домашний роутер в случае отсутствия интернета. Мне иногда помогает. У моего старого Keenetic Ultra довольно часто выключаются Ethernet порты и пропадает доступ в Интернет. При этом WiFi продолжает работать. Лечится перезагрузкой роутера. Поскольку WiFi работает то можно перегрузить роутер удаленно. Сам скрипт.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/bin/sh echo --------------- --------------- --------------- -- echo WAN CONTROLL RESTART echo --------------- --------------- --------------- -- PINGRESORCE1="109.126.0.67" PINGRESORCE2="109.126.1.67" PINGRESORCE3="google.com" if (! ping -q -c3 ${PINGRESORCE1} > /dev/null 2>&1) then if (! ping -q -c3 ${PINGRESORCE2} > /dev/null 2>&1) then if (! ping -q -c3 ${PINGRESORCE3} > /dev/null 2>&1) then echo 'перегружу модем' ( sleep 5 echo "your_login" sleep 5 echo "your_password" sleep 5 echo "system reboot" sleep 20 echo "exit" ) | telnet 192.168.1.1 else echo 'internet ok' fi else echo 'internet ok' fi else echo 'internet ok' fi |
Скрипт добавляется в планировщик crontab
/3 * * * * /home/pi/scripts/router_reboot.sh
Второй скрипт, так же найденный в Интернете, устраняет проблему того, что при загрузке из-за запаздывания активации сетевых подключений не успевают монтироваться сетевые ресурсы. Скрипт монтирует ресурс только после того как сетевое хранилище начнет пинговаться. Вместо монтирования, вы можете разместить свою команду которая должна выполняться при загрузке после того как сетевое устройство будет доступно.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#! /bin/sh #reset counter and file counter=0 file="/tmp/file.txt" echo $counter > $file until ping -w 1 192.168.1.1 | grep 'seq' do sleep 1 let "counter += 1" #or counter=`expr $counter + 1` #get results of ping into file and get counter results ping -w 1 192.168.1.1 | grep 'seq' >> $file echo "$counter" >> $file done # Затем идет ваша команда. Для примера ниже моя команда на монтирование сетевого ресурса. sudo mount -t cifs //192.168.1.1/data/share/music /mnt/music -o vers=1.0,username=user,password=user_password,iocharset=utf8,file_mode=0777,dir_mode=077 |
Нужно добавить в файл /etc/rc.local такую строчку перед строчкой exit 0
sudo /home/pi/scripts/mount.sh
214