Cron (Crontab) Untuk Automatisasi Perintah

Kita pasti pernah menjalankan perintah-perintah yang sama beberapa kali secara periodik pada command shell di mesin Linux kita. Pekerjaan-pekerjaan seperti mem-backup file, mem-backup database, me-restart service (daemon) dan lainnya. Jika kita melakukan hal ini secara manual, ada kemungkinan suatu waktu kita lupa perintahnya. Hingga kita harus membuat catatan-catatan kecil untuk perintah-perintah yang ingin dijalankan. Mungkin juga pekerjaan itu kita lakukan pas lagi dating atau tidur [he..he..], tentu mengganggu sekali, ya kan?.

Aku sendiri pernah mengalami hal di atas. Tidur terganggu karena harus bangun jam 3 pagi untuk backup database. Setelah beberapa diskusi dengan Bang Dolly dan Mas Wardi, akhirnya diberi resep jitu padaku yaitu cron (crontab).

Apa itu cron?

Menurut wikipedia, cron adalah layanan penjadwalan berbasis waktu pada komputer bersistem operasi Unix-like. Untuk lebih jelasnya, cron memiliki prinsip "Do this command at this time".

Oke, cukup bercerita tentang cron. Sekarang langsung ke penggunaan.

Waktu itu aku membutuhkan service yang membackup database MySQL setiap hari. Nah, rencananya aku akan melakukan backup di jam-jam dimana trafik situs paling rendah. Setelah ku lihat di statistik situs, jam-jam dengan akses paling rendah ada diantara jam 3 & jam 4 pagi. Nah lo..., siapa juga yang mau bangun jam 3 pagi cuma buat backup database aja. Untuk itu aku menggunakan cron (crontab) saja, supaya gag perlu bangun-bangun lagi. Langkah pertama, kita membuat script yang menangani dump database, sebagai berikut :
#!/bin/sh
#---------------------------------------------
#shell script untuk backup database
#backupmysql.sh
#---------------------------------------------

today=`date "+%d-%m-%Y"`

mysqldump -u test -ptest test | gzip > /dir/utk/backup/"test-${today}.sql.gz"

Nah, misalkan script berikut kita simpan dengan nama backupmysql.sh. Lalu, konfigurasi crontab-nya sebagai berikut :
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

0 3 * * * sh /dir/script/backupmysql.sh

Misalkan kita simpan dengan nama test_cron.txt. Lalu, jalankan perintah :
$ crontab test_cron.txt
cek apakah sudah terinstall file konfigurasi yang benar dengan perintah :
$ crontab -l
jika perintah di atas menampilkan konfigurasi yang sama dengan test_cron.txt, berarti crontab sudah terinstall dengan benar.

Penjelasan :
cron akan menjalankan script backupmysql.sh setiap pukul 03.00 pagi setiap hari. backupmysql.sh akan membuat backup database "test" untuk username "test" dgn password "test" dengan output "test-dd-mm-YYYY.sql.gz"

Referensi:
[1]http://en.wikipedia.org/wiki/Cron
[2]http://www.adminschoice.com/docs/crontab.htm
[3]http://unixgeeks.org/security/newbie/unix/cron-1.html

Thanks to:
[1]Bang Dolly (http://dollyaswin.net)
[2]Mas Wardi (http://www.wardix.com)

Powered by ScribeFire.

Komentar

Posting Komentar

Postingan populer dari blog ini

Malam Pergantian Tahun & Resolusi