Baru saja membuka milis tanya-jawab@linux.or.id ada yang bertanya mengenai bagaimana cara mendeteksi ketika koneksi internet server mati, dan segera mengirimkan email kepada kita. Dalam kasus ini, bukan service yang down, hanya koneksi internet saja. ada jawaban berupa Shell Script buatan mas Avudz dan Mas Arief Yudhawarman di milis tersebut. beikut ini saya tuliskan saja script nya di bawah ini, jika sewaktu-waktu saya butuh
Shell Script ala Mas Avudz :
#!/bin/bash
# tambahkan ip / hostname dengan spasi jika ipnya/host nya byk
# HOSTS=”www.google.co.id www.detik.com”
HOSTS=”masukkan.nama.host”
COUNT=1
TIMEOUT=3
# email
SUBJECT=”Ping failed”
EMAILID=”avudz@mydomain.com”
for myHost in $HOSTS
do
count=$(ping -W$TIMEOUT -c$COUNT $myHost | grep ‘received’ | awk
-F’,’ ‘{ print $2 }’ | awk ‘{ print $1 }’
if [ $count -eq 0 ]; then
# 100% failed
echo “Host : $myHost is down (ping failed) at $(date)” | mail -s
“$SUBJECT” $EMAILID
fi
done
tinggal masukin ke crontab
*/10 * * * /path/to/script
Script ala Mas Arief Yudhawarman :
////////// Start of script //////////
#!/bin/bash
TIMEOUT=1
# berapa banyak request ping sampai dapat respon
ATTEMPT=5
RETRY=0
IP_WEB_SERVER=1.2.3.4
PingGW() {
# $1 : ip web server
# Use : PingGW var1
# Parameter
i=1
while [ $i -le $ATTEMPT ]
do
if (ping -s 16 -W $TIMEOUT -c 1 $1 > /dev/null 2>&1)
then
break 1
fi
i=$((i+1))
sleep 1
done
RETRY=$i
}
PingGW IP_WEB_SERVER
if [ $RETI -gt $ATTEMPT ]
then
# kirim email
echo -e “Subject: Web Server down\n\nWeb Server Down\n” | sendmail -f notifier@yahoo.com adminweb@server.com
fi
////////// End of Script ////////////
Masukin deh ke cron tab
Selamat Mencoba, semoga bermanfaat
