Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: nitta 15 Února 2022, 14:48:05
-
Dobrý den,
měl bych dotaz, jde neexistuje nějaký program, který když si např. 3x nepingne do internetu, automaticky restartuje PC.
Díky.
-
Napiš si na to skript, třebas s názvem pingcontrol.sh
#!/bin/bash
if ping -c 3 -i 20 google.com > /dev/null; then
notify-send "Internet funguje !" -t 3000 -i face-laugh
else
notify-send "Internet > 1 min. nefunguje >> reboot in 10s !" -i face-sad
sleep 10
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Reboot boolean:false
fi
Pingne 3x na google.com v rozestupu 20s a pokud vrátí chybový kód, restartuje PC. Hodnoty lze upravit dle potřeby.
Dále je už na tobě, jak s ním naložíš - můžeš ho spouštět jednorázově ručně, nebo pokud chceš to připojení kontrolovat automaticky stále, spouštěj ten skript (cronem) v určitém intervalu (každých 5 minut, každou hodinu atd.).
Pak si tu hlášku o fungujícím internetu můžeš #zakomenovat aby tě neotravovala..
------------------------------------------
Verze2 (bez nutnosti použít cron). Skript pingcontrol.sh dej do domovské složky.
Nezapomeň mu nastavit spustitelnost (chmod a+x ~/pingcontrol.sh)
#!/bin/bash
if ping -c 3 -i 20 google.com > /dev/null; then
notify-send "Internet funguje !" -t 3000 -i face-laugh
sleep 300 ##interval kontroly
$HOME/pingcontrol.sh &
else
notify-send "Internet > 1 min. nefunguje >> reboot in 10s !" -i face-sad
sleep 10
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Reboot boolean:false
fi
Skript spusť. Pokud internet funguje, skript poběží v nekonečné smyčce. Interval "kontroly" se nastaví hodnotou sleep (300 = 5 minut).
Je vhodné přidat skript do autostartu - pak bude vše probíhat "bezobslužně".
-
existuje watchdog
https://linux.die.net/man/8/watchdog (https://linux.die.net/man/8/watchdog)
-
I v shellu se juwo dají používat smyčky...
while ping -qc 3 -i 20 google.com; do sleep 300; done; echo "nemáme spojení!"