Temat: Skrypt do automatycznego restartu przy braku internetu.
Aktualnie używam tego:
#!/bin/sh
sleep 300
if ! ping -q -c 5 -W 10 onet.pl > /dev/null; then
(reboot) &
fi
Ale mam pewne wątpliwości co do tego czy to na pewno niezawodny sposób.
Używam sleep 300, aby uniknąć bootloopów, może powinienem zamiast tego bazować na wyniku uptime, albo zapisywać podczas restartu odległość od epoki linuksa $EPOCHSECONDS?
Czy pingowanie po domenie to dobry pomysł? Co jeśli serwery DNS dostawcy internetu się położą (wtedy po prostu będę miał restart co 5 minut aż wstaną czy zero restartów)? Czy onet ma jakiś IP, którego można do tego użyć i być pewnym, że zawsze będzie aktywny? Poza tym, nie wiem czy onet.pl jest odpowiednim wyborem, też może mieć przecież downtime (czy jeśli onet będzie leżał to mam restart co 5 minut?). Nie chcę pingować google, czy są jakieś hosty do tego przeznaczone z uptime 100%? Może pingować np. stronę mojego dostawcy do internetu?
To dla serwera do którego nie ma fizycznego dostępu i nie ma ssh, więc jak internet się położy (bez reboota sam nie wstanie), będzie bootloop itp. to będzie wtedy kompletna katastrofa, jest to bardzo ważne, żeby to niezawodnie działało.