Perangkat lunak apa yang ada yang akan memainkan peringatan (speaker PC) ketika tidak ada konektivitas internet selama 5 menit?
Switch / router saya sepertinya terputus setiap beberapa hari, dan saya ingin mengatur ulang ketika itu terjadi.
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
sumber
sumber
Jawaban:
Anda dapat menggunakan versi modifikasi dari skrip ini untuk melakukan apa yang Anda inginkan:
Kami "TERHUBUNG" Contoh
Dengan debugging dihidupkan sehingga Anda dapat melihat apa yang dilakukan skrip.
Berjalan dengan nama host yang valid untuk menunjukkan status "koneksi habis".
Di atas menginisialisasi beberapa variabel dan menentukan kapan terakhir kali kami melewati loop
$lastAccessTime
,. Kami sekarang mencoba untuk melakukan ping ke Google.Kami sekarang menghitung waktu
$downTime
henti,, jika ping gagal, jika tidak, kami setel ulang$downTime
ke nol, dan hitung ulang$lastAccessTime
.Sekarang kita tunggu 15 detik.
Sekarang kami memeriksa apakah kami sudah turun> 5 menit (300 detik). Kemudian kami ulangi melalui
while
loop.Selama kita bangun, tidak ada yang akan terjadi selain kita memeriksa dengan
ping
perintah setiap 15 detik.Kami adalah "TERCONEKTIF" Contoh
Sekarang untuk mensimulasikan keadaan "koneksi terputus", kami akan menukar nama host yang kami ping dan gunakan yang palsu
google1234567890.com
,. Mengulangi skrip kami dengan debugging yang diaktifkan sekarang kami melihat waktu henti aktual dihitung.Perhatikan di atas yang
$downTime
sama dengan 15 detik sejauh ini. Jika kita menunggu lebih lama, kita akan melihat ini:Kami mengumpulkan 300 detik waktu henti. Jadi sekarang ketika kami memeriksa, kami mencetak pesan
alert
,.Keadaan ini akan berlanjut sampai koneksi dipulihkan dan
ping
sekali lagi berhasil.Jadi bagaimana dengan suara?
Itu mudah. Anda dapat menggunakan berbagai alat untuk melakukan ini. Saya akan menggunakan sesuatu seperti
sox
ataumplayer
untuk memutar file audio seperti.mp3
atau.wav
file dengan suara yang sesuai yang ingin Anda dengar setiap 15 detik, saat koneksi sedang tidak aktif.Cukup ganti
alert
pesan di atas dengan baris ini untuk mendapatkan umpan balik audio bahwa koneksi sedang down.Mengatur waktu masalah dengan ping
Jika Anda menggunakan
ping
cara di atas, Anda mungkin akan menemukan jeda waktu yang lambat di mana dibutuhkanping
10-20 detik untuk gagal ketika koneksi sedang tidak aktif. Lihat jawaban saya untuk T&J T&J ini berjudul: Bagaimana cara mengarahkan output dari perintah apa pun? sebagai contoh menggunakan alat baris perintahfing
sebagai gantinya. Alat ini akan gagal lebih cepat daripada yang tradisionalping
.sumber
beep
perintah, apakah amanchown /dev/tty0
sehingga saya bisa menggunakannya tanpasudo
?/dev/tty0
.sox
! @Kokizzu - hak slm tentang meninggalkan izin pada/dev/tty0
perangkat sendirian, tetapi Anda bisa mendapatkan perangkat pseudo-terminal/dev/pts/[num]
- jenis perangkat karakter yang sama yangxterm
digunakan untuk setiap jendela, misalnya - dengan sesuatu sepertiscreen
atautmux
atau bahkanssh
. Ini Anda dapat lebih aman mengontrol karena mereka hanya perangkat budak ke/dev/ptmx
perangkat master dan tidak akan menyebabkan masalah yang sama seperti, katakanlah,/bin/login
proses yang dimiliki pengguna mungkin - yang bisa terjadi dalam kasus lain.aplay alert.wav
adalah cara yang lebih standar untuk memainkan suara karena merupakan bagian dari sistem ALSA dan dilengkapi prebundled di sebagian besar distro.jika Anda menggunakan Linux, Anda dapat menggunakan ping dalam skrip
google.com
misalnya:sumber
fing
bukanping
. Theping
cmd. dapat mengambil sedikit gagal ketika itu tidak berhasil. Thefing
perintah pada otherhand akan gagal dalam waktu 1 detik. Lihat A saya untuk Tanya Jawab ini untuk lebih lanjut: Bagaimana cara mengarahkan output dari perintah apa pun? . Saya menunjukkan keduanya menggunakanping
danfing
.sleep 1
sudah cukup untuk mencegah hal ini.