Apakah ada cara mudah untuk memeriksa konektivitas Internet dari konsol? Saya mencoba untuk bermain-main dalam skrip shell. Satu ide yang tampaknya saya lakukan adalah dan memeriksa kode respons HTTP untuk menafsirkan jika koneksi Internet berfungsi dengan baik. Tapi saya pikir pasti ada cara mudah tanpa perlu memeriksa situs yang tidak pernah macet;)wget --spider http://www.google.co.in/
Sunting: Sepertinya ada banyak faktor yang dapat diperiksa secara individual, hal yang baik. Niat saya saat ini adalah untuk memeriksa apakah blog saya rusak. Saya memiliki pengaturan cron untuk memeriksanya setiap menit. Untuk ini, saya memeriksa kode respons HTTP dari wget --spider ke blog saya. Jika tidak 200, itu memberi tahu saya (saya percaya ini akan lebih baik daripada hanya melakukan ping, karena situs mungkin di bawah beban berat dan mungkin waktu keluar atau merespons sangat terlambat). Sekarang kemarin, ada beberapa masalah dengan Internet saya. LAN terhubung dengan baik tetapi saya tidak bisa mengakses situs apa pun. Jadi saya terus mendapatkan notifikasi karena skrip tidak dapat menemukan 200 di respons wget. Sekarang saya ingin memastikan bahwa itu menampilkan pemberitahuan kepada saya ketika saya memiliki konektivitas internet.
Jadi, memeriksa konektivitas DNS dan LAN agak berlebihan bagi saya karena saya tidak memiliki kebutuhan khusus untuk mencari tahu apa masalahnya. Jadi apa yang Anda sarankan bagaimana saya melakukannya?
Berikut ini skrip saya untuk terus memeriksa downtime untuk blog saya:
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
Dengan cara ini saya perlu memeriksa konektivitas internet hanya jika ada masalah dengan kode respons blog saya. Agak berat (karena saya tidak menggunakan ping) tetapi tidak boleh memberikan positif palsu. Kanan? Juga bagaimana saya dapat mengacak ping ke situs yang berbeda setiap kali, seperti facebook, google, yahoo dll. Juga (saya mencoba menghindari I / O) Saya dapat menulis ke file log yang dengannya saya dapat memeriksa jumlah pemeriksaan downtime dan kemudian lewati pemeriksaan lebih lanjut hingga situs turun atau menyebabkan pemeriksaan lebih lama (10 menit alih-alih setiap menit). Apa yang kamu pikirkan?