Jika ada masalah di server, misalkan server mati mendadak, seringkali seorang sysadmin merasa sedikit kerepotan untuk mengecek kondisi terakhir server sebelum server itu mati.
Karena itu seorang sysadmin membutuhkan sebuah program yang bisa mengirimkan email harian yang berisi info terkini tentang kondisi server.
Program tersebut saya beri nama Daily Report Health Check Server, program ini memanfaatkan phpmailer untuk mengirim email via smtp dan crontab untuk membuat jadwal pegirimannya.
Pertama, kita buat script cekserver.sh yang akan memeriksa kondisi kesehatan server terkini.
Contoh script bisa seperti di bawah ini, dan bisa Anda tambahkan info lain sesuai keperluan Anda.
_echo "Login as"Simpan script di atas di folder /home/useranda dengan nama cekserver.sh
echo "============================================================"
whoami
date
echo "============================================================"
echo "UPTIME"
echo "============================================================"
uptime
echo "============================================================"
echo "PENGECEKAN USER AKTIF"
echo "============================================================"
who
echo "============================================================"
echo "STATUS WEB SERVER"
echo "============================================================"
/etc/init.d/httpd status
/etc/init.d/mysqld status
/etc/init.d/gheat status
echo "============================================================"
echo "PENGECEKAN HARDDISK SPACE"
echo "============================================================"
df -kh
echo "============================================================"
echo "PENGECEKAN MEMORY"
echo "============================================================"
free -t -m
echo "============================================================"
echo "============================================================"
echo "PORTFORWARDER"
echo "============================================================"
ps -ef | grep portfwd
echo "============================================================"
echo "ROUTING TABLE"
echo "============================================================"
/sbin/route
echo "============================================================"
echo "NETSTAT"
echo "============================================================"
netstat | grep ESTABLISHED
echo "============================================================"
echo "END OF CHECKLIST"_
Kedua, setelah berhasil membuat script cekserver.sh, kita buat lagi script healthcheck.sh dengan diisi perintah berikut.
_sh /home/useranda/cekserver.sh > /var/www/html/cekserver/cekserver.txt_
Simpan script ini di folder /var/www/html/cekserver/ dengan nama healthcheck.sh
Ketiga, kita buat file healthcheck.php di folder /var/www/html/cekserver dengan diisi seperti berikut ini dan menaruh file phpmailer di folder /var/www/html/cekserver/phpmailer.
_<?phpTerakhir buat crontab untuk menjadwal pengiriman otomatis setiap hari. Pada jam 8.00 menjalankan file healthcheck.sh yang berfungsi membuat file lampiran cekserver.txt yang berisi info kesehatan server terkini.
require_once "phpmailer/class.smtp.php";
require_once "phpmailer/class.phpmailer.php";
// ## Tanggal H ###
$h1 = mktime(0, 0, 0, date("m"), date("d"), date("y"));
$sekarang=date("d", $h1);
$tahun=date("FY", $h1);
$tanggal= "$sekarang$tahun";
$mail = new PHPMailer();
// setting
$mail->IsSMTP(); // send via SMTP
$mail->Host = "ipsmtpserver"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "usersmtpserver"; // SMTP username
$mail->Password = "passwordnya"; // SMTP password
// pengirim
$mail->From = "user@serversmtp.com";
$mail->FromName = "Health Check Server";
// penerima
$mail->AddAddress("penerima1@gmail.com","user1″); // Email penerima
$mail->AddAddress("penerima2@gmail.com","user2″); // Email penerima 2
$mail->AddCC("penerima3@gmail.com"); // Email untuk CC
// kirim balik
$mail->AddReplyTo("user@serversmtp.com","pengirim");
$mail->WordWrap = 50; // set word wrap
$mail->IsHTML(false); // send as HTML
$mail->Subject = "Health Check Server Web $tanggal";
$mail->Body = "Berikut terlampir cek server $tanggal";
$mail->AltBody = "Cek Server Harian ";
$mail->AddAttachment("cekserver.txt");
if(!$mail->Send())
{
echo "Message was not sent <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>_
Dan lima menit kemudian menjalankan file healthcheck.php berfungsi mengirimkan email dengan lampiran cekserver.txt yang dibuat sebelumnya.
_# Crontab for Cek kesehatanDengan begitu setiap hari Anda akan menerima email yang berisi informasi kesehatan server terkini.
00 8 * * * sh /var/www/html/cekserver/healthcheck.sh
05 8 * * * curl http://localhost/cekserver/healthcheck.php_
[Tulisan lama: sucipto kuncoro - 28061433 - dari blogku yang terhapus]
kita juga punya nih artikel mengenai 'Otomatisasi', silahkan dikunjungi dan dibaca , berikut linknya
ReplyDeletehttp://repository.gunadarma.ac.id/bitstream/123456789/7125/1/OTOMATISASI%20RUANGAN%20BERBASIS%20MIKROKONTROLER%20ATMEGA%208535.pdf
trimakasih
semoga bermanfaat