Digit Oktavianto Web Log

Catatan Sampah si Digit

Shell Script Mendeteksi Koneksi Internet Mati

| Comments

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

digit@digit-laptop:~$ crontab -e
*/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

Comments