Jakie oprogramowanie wyświetla alert (głośnik komputera), gdy przez 5 minut nie ma połączenia z Internetem?
Mój przełącznik / router wydaje się rozłączać co kilka dni i chcę go zresetować, kiedy to nastąpi.
PC -- TP-Link switch/router -- FO
192.168.x.1 -- 192.168.x.2 / x.y.z.a -- a.b.c.d
networking
audio
monitoring
Kokizzu
źródło
źródło
Odpowiedzi:
Możesz użyć zmodyfikowanej wersji tego skryptu, aby zrobić to, co chcesz:
Przykład „POŁĄCZONY”
Po włączeniu debugowania możesz zobaczyć, co robi skrypt.
Uruchamianie z prawidłową nazwą hosta w celu wykazania stanu „połączenie jest aktywne”.
Powyższy inicjuje kilka zmiennych i określa ostatni raz przeszedł pętli
$lastAccessTime
. Teraz próbujemy pingować Google.Teraz obliczamy czas przestoju
$downTime
, jeśli ping się nie powiedzie, w przeciwnym razie resetujemy$downTime
do zera i ponownie obliczamy$lastAccessTime
.Teraz czekamy 15 sekund.
Teraz sprawdzamy, czy byliśmy nieobecni przez> 5 minut (300 sekund). Następnie powtarzamy przejście przez
while
pętlę.Dopóki nie wstaniemy, nic się nie wydarzy, poza tym, że sprawdzamy
ping
polecenie co 15 sekund.Przykład „ODŁĄCZONY”
Teraz, aby symulować „połączenie jest w dół” stan, będziemy zamieniać nazwę hosta jesteśmy pingowanie i używać fałszywy,
google1234567890.com
. Po ponownym uruchomieniu naszego skryptu z włączonym debugowaniem widzimy teraz obliczanie faktycznego czasu przestoju.Zauważ, że
$downTime
do tej pory było to 15 sekund. Jeśli poczekamy jeszcze chwilę, zobaczymy:Naliczyliśmy 300 sekund przestoju. Więc teraz, kiedy sprawdzić, możemy wydrukować wiadomość
alert
.Ten stan będzie trwał do momentu przywrócenia połączenia i
ping
ponownego nawiązania połączenia .A co z dźwiękiem?
To łatwe. Aby to zrobić, możesz użyć różnych narzędzi. Chciałbym użyć czegoś takiego jak
sox
lubmplayer
odtworzyć plik audio taki jak.mp3
lub.wav
plik z odpowiednim dźwiękiem, który chcesz usłyszeć co 15 sekund, gdy połączenie jest nieczynne.Po prostu zastąp
alert
powyższy komunikat tym wierszem, aby uzyskać informację audio, że połączenie nie działa.Przekroczono limit czasu problemów z pingiem
Jeśli użyjesz
ping
powyższego sposobu, najprawdopodobniej napotkasz powolne opóźnienie, w którymping
dosłownie 10-20 sekund zawiedzie, gdy połączenie zostanie przerwane. Zobacz moją odpowiedź na pytania i odpowiedzi dotyczące U&L zatytułowane: Jak przekierować wyjście dowolnego polecenia? na przykład za pomocą narzędzia wiersza poleceńfing
. To narzędzie zawiedzie szybciej niż tradycyjneping
.źródło
beep
polecenia, czy jest to bezpieczne, abychown /dev/tty0
móc go używać bezsudo
?/dev/tty0
.sox
! @Kokizzu - tuż za SLM o opuszczeniu uprawnienia na/dev/tty0
urządzenia samodzielnie, ale można dostać pseudo-terminal/dev/pts/[num]
urządzenie - ten sam rodzaj urządzenia znakowego, któryxterm
zastosowań dla każdego okna, na przykład - z czymś takimscreen
lubtmux
czy nawetssh
. Można je bezpieczniej kontrolować, ponieważ i tak są to tylko urządzenia podrzędne do/dev/ptmx
urządzenia nadrzędnego i nie będą powodować tego samego rodzaju problemów, co powiedzmy, że/bin/login
proces należący do użytkownika może - co dzieje się w innym przypadku.aplay alert.wav
jest bardziej standardowym sposobem odtwarzania dźwięku, ponieważ jest częścią systemu ALSA i jest dostępny w większości dystrybucji.jeśli używasz Linuksa, możesz użyć polecenia ping w skrypcie, aby
google.com
na przykład:źródło
fing
zamiastping
.ping
Cmd. może trochę potrwać, jeśli się nie powiedzie. Zfing
drugiej strony polecenie zakończy się niepowodzeniem w ciągu 1 sekundy. Zobacz moje A do tego pytania i odpowiedzi, aby dowiedzieć się więcej: Jak przekierować wyjście dowolnego polecenia? . Pokazuję zarówno za pomocą, jakping
ifing
.sleep 1
wystarczy, aby temu zapobiec.