Anda di sini

Pemrograman

[TUTORIAL - Ubuntu Server] PHP & NMAP Based Automated Shutdown Berdasarkan Jumlah Host Hidup Pada Jaringan

Aditya Suranata - 13 November 2015 14:41:59 0

Baik... kali ini saya akan membagikan tips mantap untuk menghemat konsumsi listrik infrastruktur kita yang berbasis Ubuntu Server. Berhubung tarif listrik akan naik lagi di tahun 2013 ini, maka ide ini akan sangat membantu jika diimplementasikan Biggrin

Pertama, dari segi cara kerja, apa yang akan kita buat ini adalah sebuat script yang akan memicu mesin kita untuk power off jika jumlah host yang berhasil di ping pada jaringan dimana mesin kita terhubung adalah berjumlah x host. Script ini bekerja dengan cara menscan output dari perintah nmap yang nmap sendiri berfungsi untuk menscan jaringan,

(untuk lebih jelasnya apa itu nmap dan apa saja perintahnya silahkan ketin man nmap pada terminal anda.) Kemudian.. setelah output tersebut didapatkan, dalam kasus ini berupa string angka sesuai jumlah host hidup yang ada pada jaringan, akan kita lakukan pengkondisian dengan syntax if pada bahasa PHP dengan kondisi "Jika host hidup pada jaringan sama dengan x, maka lakukan shutdown". Jika statement tersebut bernilai benar maka yang dilakukan adalah mengeksekusi perintah shutdown pada Ubuntu server, pesan power off akan dibroadcast keseluruh sesi yang aktif sehingga siapa pun yang sedang login ke server akan mendapat peringatan, kemudian Ubuntu akan melakukan shutdown pada rentang waktu tunggu yang diberikan/diset pada script. Dan akhirnya.. nyiutt... Server pun mati.

Oke, saatnya mulai.. pertama kita akan membuat scriptnya dan kemudian menyeting cron job. Namun sebelumnya anda perlu login sebagai root karena nanti akan beruhubungan dengan permission.

1. Bekerja di directory home dan masuk sebagai root
$ cd ~/ && sudo su

2. Buat folder untuk menempatkan script kita di /home/%namauser%/bin/
$ mkdir ./bin

2. Ketik script phpnya dengan nama netScan.php
$ nano ./bin/netScan.php

3. Ketik script berikut

<?php
//Inisialisasi parameter
$pesan = '"*** WARNING *** Host Up pada jaringan 10.10.10.0/24 == 2, Simpan pekerjaan anda, Proses power off !"';
$waktuTunggu = "+3";
$jaringan = "10.10.10.0/24";
  
//Panggil perintah nmap untuk memindai jaringan
$nmapResult = shell_exec('nmap -sP ' . $jaringan);
  
//Pecah output dari nmap sehingga kita mendapatkan jumlah host yang up di jaringan
$getHostCount1 = explode("addresses (", $nmapResult);
$getHostCount2 = explode(" hosts up", $getHostCount1[1]);
$hostUp = $getHostCount2[0];
  
//Jika hanya 2 host yang up (Server + Router), maka lakukan shutdown
if($hostUp == "2") {
    shell_exec('/sbin/shutdown -P ' . $waktuTunggu . ' ' . $pesan);
}
  
?>

Sesuaikan varibale inisialisasinya sesuai kebutuhan anda, terutama $jaringan isi dengan network address beserta subnet anda. Biasanya ip lokal standar 192.168.1.10 dan subnet 255.255.255.0 adalah mempunyai network address 192.168.1.0 dan subnet /24 sehingga menjadi 192.168.1.0/24. Klik disini untuk kebih lanjut mengenai subnetting.Selanjutnya tekan ctrl + x kemudian y enter untuk menyimpan file.

4. Untuk menjaga kemanan agar script ini hanya bisa dilihat, diedit dan tidak bisa dieksekusi oleh orang lain selain user root ketik perintah berikut
$ chown root:root ./bin/netScan.php && chmod 4750 ./bin/netScan.php

Selanjutnya kita akan menyeting cron job, cron job sendiri berfungsi sebagai triger atau pemicu agar script kita ini dieksekusi oleh server kita dalam interval waktu tertentu. Anda bisa mengetahui lebih banyak mengenai apa itu cron jobdisini

6. Ketik perintah berikut untuk masuk ke cron job, petama kali anda akan ditanyakan editor apa yang akan anda gunakan untuk menyunting cron, saya sarankan untuk memilih nano sebagai editornya.
$crontab -e

Editor crontab akan muncul kemudian tambahkan pada bagian bawahnya,

#Monitor host jaringan setiap 3 Menit
*/3 * * * * php -f /home/[username]/bin/netScan.php

Ingat untuk mengganti [username] menjadi username yang anda gunakan untuk login, untuk melihatnya ketik perintahwhoami pada terminal. Kemudian simpan dengan ctrl + x -> y enter.

7. Script sudah berhasil terpasang, Smile

Script untuk mati otomatis sudah... bagaimana dengan script untuk hidup otomatis ???? Nah lohh :cash: hahaha... tenang.. tak ada yang tak mungkin untuk itu, dengan teknologi wake on lan anda bisa melakukanya. Nanti saya akan coba untuk membahasnya atau anda bisa googling sebentar karena disana sudah ada banyak orang yang membahas bagaimana cara menghidupkan komputer melalui jaringan. Oke.. selamat mencoba

1.462
Image

Aditya Suranata

Aditya suka menulis, bukan hanya sekedar hobi, menulis menjadi medianya untuk mencurahkan pikiran dan perasaan. Di TutorKeren.com kebanyakan menyumbang tulisan sesuai dengan minat dan keahliannya yaitu pada kategori pemrograman dan elektronika. Selain itu juga gemar menulis mengenai hal-hal umum, seperti ilmu alam, sosial dan beberapa pengalamannya yang mungkin bisa berguna untuk orang lain.

Artikel Menarik Lainnya
Mari Gabung

Halo Emo 51 , Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.