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.txtcek apakah sudah terinstall file konfigurasi yang benar dengan perintah :
$ crontab -ljika 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.
Itu lagi dating, maksudnya lagi makan kurma yah?
BalasHapushmm.. tergantung bg.. :D
BalasHapuscmananya muhfi repo di ubuntu... error aja nih...
BalasHapuscmananya fi, repo Ubuntu ini error aja... bribet juga ya kalo beda distro...
BalasHapus@pai : sabar ya bg.. :D
BalasHapus@moehfi :D ajarin lah fi ubuntu...
BalasHapus@ pai : ah, bang pai ini.. awak yang harus nya minta ajarin...
BalasHapus