Sunday, November 22, 2009

Kirim email dengan perintah baris di FreeBSD

Untuk alasan tertentu, kadang kala kita perlu mengirim e-mail menggunakan perintah baris. Sebuah cara mengirim e-mail yang jadul dan primitip. Perintah baris nya cukup sederhana, yaitu :

# mail -s server_mati msmunir@batan.go.id <>

dimana :
  • Opsi "-s" artinya subject, dan kebetulan subyeknya "server_mati"
  • msmunir@batan.go.id adalah alamat e-mail yang dituju
  • pengirimnya adalah root, atau tergantung siapa yang menjalankan perintah baris ini
  • body.txt adalah isi e-mail yang mau dikirim dalam bentuk file TXT
Untuk mengetahui opsi lain dari perintah baris mail, bisa dilakukan dengan menjalankan perintah baris :

# man mail
# mail --help

Sepintas lalu tampaknya perintah baris mail ini tidak berguna. Namun kalau anda jeli, ada aja manfaatnya. Misal, perintah ini bisa dimanfaatkan untuk mendeteksi status satu atau beberapa perangkat jaringan sekaligus. Untuk itu anda perlu membuat sebuah shell script, membuat sebuah file yang berisi kumpulan IP address perangkat yang akan diperiksa dan mengedit file crontab. Contoh shell script dengan nama file router.sh :

#!/bin/sh
# ping.sh - skrip untuk cek keberadaan server
for x in `cat /root/router.txt`
do
if ping -c 1 $x > /dev/null 2>&1;
then
echo do nothing
else
mail -s server_mati msm@batan.go.id < /dev/null
fi
done

Sebaiknya file router.sh diberi attribut 777 saja.

Perangkat jaringan yang akan dipantau, IP Address nya dikumpulkan dalam sebuah file yaitu router_ip.txt. Isi file router_ip.txt adalah :

192.168.1.1
192.168.2.1
192.168.3.1

Sementara crontab digunakan agar skrip di atas bisa dijalankan oleh server secara otomatis sesuai dengan periode yang kita tentukan.

Jika file
router.sh dijalankan, layar monitor kira-kira akan menampilkan pesan sbb :

[root@localhost] ~ # ./router.sh
Null message body; hope that's ok
do nothing
do nothing
[root@localhost] ~ #

Dari tampilan di atas, tampak bahwa salah satu perangkat jaringan ada yang sedang DOWN. Jika perangkat jaringan tidak ada yang bermasalah, tampilan layar monitor menjadi :

[root@localhost] ~ # ./router.sh
do nothing
do nothing

[root@
localhost] ~ #

Edit Crontab dengan menambah 2 baris di file /etc/crontab :

# cek router setiap jam.
0 * * * * root /root/router.sh

Maksud dari skrip di atas adalah, file /root/router.sh akan dijalankan setiap jam atau setiap menit ke 0 (nol). File skrip kebetulan saya simpan di folder /root/, sehingga file yang dijalankan harus ditulis lengkap seperti /root/router.sh. Setelah melakukan perubahan seperlunya pada file crontab, Anda tidak perlu melakukan restart crontab. Crontab secara otomatis akan mendeteksi perubahan dan akan menjalankannya pada siklus selanjutnya. Namun jika ingin melakukan restart crontab, jalankan saja perintah baris di bawah ini :

[root@localhost] /etc/rc.d # ./cron restart
Stopping cron.
Waiting for PIDS: 761.
Starting cron.
[root@localhost] /etc/rc.d #

Dengan menambahkan di crontab, diharapkan skrip router.sh bisa dijalankan setiap jam. Dan bila ada masalah dengan perangkat jaringan bisa langsung dikirim via email.

Jika e-mail akan dikirimkan ke beberapa orang, maka sintak baris tertentu pada file router.sh dapat dimodifikasi menjadi :

mail -s server_mati msm@batan.go.id,msm@yahoo.com < /dev/null

PR selanjutnya adalah bagaimana agar body e-mail ada isinya. Biar yang menerima e-mail gak bingung.

Agar dalam body email yang dikirim ada pesannya, maka ganti salah satu baris file router.sh menjadi :

mail -s server_mati msm@batan.go.id,msm@yahoo.com < /root/router_pesan.txt

Dimana isi file
router_pesan.txt adalah sbb :

Pesan ini dikirim secara otomatis bila ada perangkat yang DOWN. Mohon segera lak
ukan pengecekan dan perbaikan seperlunya terhadap perangkat yang tidak berfungsi
tersebut.
Terima kasih atas kerjasamanya.
Admin

PR sudah terjawab. He he he .... lega rasanya.

Selamat mencoba untuk memantau server, Wireless Access Point, dll yang anda suka. Bahkan petunjuk di atas bisa dikembangkan lagi untuk memantau perangkat jaringan lewat SMS Gateway. Tunggu saja tutorialnya. Soalnya harus bermodalkan modem GSM iTechno yang harganya 2,5 jt. Mudah-mudahan tahun anggaran 2010 bisa kebeli modem GSM.

Kayaknya tutorial ini hanya bisa dijalankan dari server yang sudah tersedia mail server dan memiliki IP Public.

Semoga bermanfaat.

1 comment:

  1. wah bagus banget mas, tapi waktu saya ketik
    #man mail
    tidak ada...?
    trus install mailnya gimana yaa
    makasih
    gratisansaja@gmail.com

    ReplyDelete