Membuat Server Mendeteksi Listrik Padam dan Secara Otomatis Melakukan Shutdown

Berulang kali saya harus mengalami Harddisk jebol karena seringnya listrik padam dan UPS tidak mampu membackup power dalam jangka waktu lama. Mungkin hal ini tidak akan jadi masalah bagi anda semua yang memilki UPS dengan kapasitas besar dan backup time yang cukup lama. Namun, bagi saya yang hanya mampu membeli aki basah 10AH untuk memodifikasi UPS usang merk kenika yang bettreynya udah rusak, padamnya listrik PLN yang waktunya sangat susah diprediksi menjadi musuh yang sangat menakutkan :takuts . Berulang kali saya harus dengan terpaksa menginstall ulang server karena HDD yang jebol.  Belum lagi keperluan saya yang harus sering meninggalkan rumah dalam jangka waktu lama membuat saya tidak bisa mematikan server jika terjadi pemadaman listrik tiba2. Saya sangat butuh solusi yang bisa membuat server secara otomatis shutdown saat listrik padam sebelum UPS kehabisan daya untuk membackup power untuk server.

Terinspirasi dari fitur Netwatch di mikrotik, maka saya mulai berpikir untuk memanfaatkan fitur ping untuk mendeteksi adanya listrik padam. Konsep dasarnya, server akan melakukan ping secara berkala dimana jika terjadi ping timed out, maka server akan mengeksekusi perintah shutdown. Untuk menjalankan konsep itu, maka dibutuhkan sebuah alat yang selalu menyala dan bisa di ping dan terhubung langsung dengan listrik PLN, disini saya punya satu Akses Point (AP) untuk wireless lan yg saya nyalakan di dalam rumah, tetapi tidak saya masukkan UPS, nah AP inilah nantinya yang akan menjadi parameter ping untuk proxy server. sehingga saat ping reply ke AP ini timed out, karena AP mati saat listrik PLN padam, maka proxy akan mengeksekusi script self shutdown. Tinggal sesuaikan saja dengan topologi jaringan di tempat anda, kira-kira alat apa yang bisa di ping sebagai parameter padamnya listrik PLN.

Anda juga bisa memanfaatkan script ini untuk mematikan server saat malam dimana sudah tidak ada lagi client yang menggunakan service dari server tersebut, misal di warnet yang tidak buka 24 jam, Komputer operator pun bisa menjadi parameter ping-nya.

langkah kerja yang dilakukan :

buka terminal proxy (saya pake Ubuntu) via Putty. Yang terbiasa dengan webmin dan winscp akan lebih mudah.
buat sebuah file dengan nama shutdown.sh, saya buatnya di folder root

cd /root
pico shutdown.sh

Selanjutnya pastekan script sederhana berikut :


#!/bin/sh

IP_LIST=’192.168.0.200′

ALIVE=0
for IP in $IP_LIST; do
ping -q -c1 -w5 $IP
if [ $? -eq 0 ]; then
ALIVE=1
echo “$IP is alive: $(date)” >> /root/shutdown.log
break
fi
done

if [ $ALIVE -eq 0 ]; then
echo “***ShutDown*** $(date)” >> /root/shutdown.log
echo “###########################” >> /root/shutdown.log
/sbin/shutdown -h now
fi

ubah permission agar bisa di eksekusi :


chmod +x /root/shutdown.sh

masukkan script kedalam crontab agar di eksekusi sesuai keinginan kita. Yang saya lakukan disini setiap 3 menit


crontab -e

masukkan baris dibawah :


0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /root/shutdown.sh

Coba sekarang cabut kabel UTP yang mengarah pada AP ataupun alat lain yang menjadi parameter ping server, tunggu beberapa menit sesuai dengan waktu pada cronjob. Jika script yang anda tuliskan benar, maka server akan secara otomatis shutdown beberapa saat kemudian.

 

Selamat mencoba, dan semoga memberikan manfaat.

:toast

13 thoughts on “Membuat Server Mendeteksi Listrik Padam dan Secara Otomatis Melakukan Shutdown

    • untuk di windows saya belum dapat caranya mas, mestinya ada sih software yang bisa melakukan hal ini, cm belum pernah cari2 juga. kl punya smart UPS biasanya udah ada sofware buat deteksi kapasitas tersisa dari UPS sehingga saat listrik padam juga bisa otomatis shutdown atau hibernate.

  1. Arie says:

    Sesuai Tutorial sya ikuti semua,

    Kok saat di test kenapa jadi shutdown ya gan ??

    Melalui Webmin saya coba buka di cron skejul saya run,

    hasil;

    Unknown Host

    padahal saat di ping melalui terminal bisa.

    mohon bantuannya gan.

    • Nah kan emang tujuannya biar bisa shutdown saat listrik padam dengan memanfaatkan ping gan, jadi kl server gak bisa ping ke device target ya server akan shutdown.

  2. Keren mas idenya.. cuma minusnya di waktu ping nya.. timeoutnya terlalu cepet.. jika target ping nya ga sengaja ada diluar jaringan (misal kabelnya copot atau hal lain) maka server langsung eksekusi shutdown..

    tapi idenya keren, dibanding harus beli smart ups yang harganya mahal..

    tips:
    jangan lupa pake ‘sudo’ waktu nulis di crontab -e
    $ sudo crontab -e

    biar lebih simple,, dibuat gini aja
    */3 * * * * /root/shutdown.sh

    sama-sama eksekusi script setiap 3 menit..

    sukses terus mas, mantap..

  3. Roby says:

    cara di atas kan untuuk otomatis shutdown.. apa ada cara untuk menghidupkan server kembali secara otomatis.. jika listrik menyala?

    • Bisa pakai fitur wake on lan gan kalau mainboard servernya suport. Tinggal buat script di mikrotik yang mengirimkan magic paket saat ping ke device sudah kembali normal

Leave a Reply

Your email address will not be published. Required fields are marked *