|
|
|
PENJADWALAN KERJA OTOMATIS DI LINUX
MENGGUNAKAN CRON
Dudy Rudianto
Jika anda harus melakukan pekerjaan-pekerjaan seccara rutin, mengapa anda masih harus melakukannya dengan mengetikkan baris-baris perintah yang panjang dan rumit. Di Linux anda dapat mengatur pekerjaan-pekerjaan tersebut secara otomatis/penjadwalan otomatis menggunakan cron. Dengan demikian anda dapat menghemat waktu anda, karena pekerjaan-pekerjaan rutin yang harus anda lakukan, diambil alih oleh sistem komputer anda, bahkan setelah itu anda dapat melupakannya.
Di lingkungan UNIX ataupun Linux penjadwalan kerja otomatis yang dilakukan oleh sistem bukan merupakan barang baru, karena kita tahu bahwa Linux ataupun UNIX merupakan sistem operasi yang multitasking dan multiuser, sehingga sangat tepat digunakan untuk menjalankan berbagai operasi yang bersifat critical mission.
Secara singkat cron dijalankan dengan menggunakan perintah crontab. Crontab sendiri akan menyimpan baris-baris perintah tersebut pada direktori /var/spool/cron/crontab. Untuk dapat menjalankan crontab, pastikan bahwa sistem Linux anda telah menjalankan daemon yang bernama crond pada waktu booting. Pada dasarnya tidak ada perintah yang bernama cron, akan tetapi anda hanya menggunakan utilitas crontab dan daemon crond.
Sebagai contoh sebelum penulis mengenal cron, penulis harus mengetikkan baris-baris perintah setiap harinya untuk menghapus file-file temporer yang berada pada direktori /tmp. Memang pada beberapa distribusi Linux akan menghapus file-file temporer setiap kali komputer anda melakukan booting. Akan tetapi jika komputer anda harus hidup selama berhari-hari, maka file-file temporer anda akan semakin banyak menumpuk.
Misalkan anda harus menghapus file-file yang sudah berusia lebih dari tiga hari pada direktori /tmp, anda dapat mencarinya dengan menggunakan perintah find, dengan target direktori adalah /tmp, dengan menambhakan beberapa option agar perintah find langsung menemukan file-file yang berusia lebih dari tiga hari. Option -exec digunakan untuk mengeksekusi setiap perintah yang diberikan jika file-file yang dimaksud telah ditemukan.
# find /tmp \! -type d -atime +3 -exec rm {} \;
Perintah ini akan meminta find mengeksekusi perintah rm, string {} digunakan untuk menampilkan keseluruhan hasil dari baris-baris perintah sesuai dengan option yang diberikan.
Dengan demikian, sekarang anda sudah dapat menghapus file-file temporer pada direktori /tmp, tinggal sekarang anda harus menentukan kapan baris-baris perintah tersebut akan dijalankan oleh cron, anda harus melakukannya dengan crontab yang memiliki format yang terdiri dari 6 buah field, yaitu :
minute hour day month dayofweek command
Berikut adalah penjelasan dari field-field tersebut :
Minute = Menit (bernilai 0 sampai dengan 59).
Hour = Jam (bernilai antara 0 sampai 23).
Day = Hari (bernilai antara 1 sampai 31).
Month = Bulan (1 sampai 12 atau berupa nama bulan jan, feb, mar dsb).
Command = Perintah
Berikut ini adalah sebuah contoh entri pada cron. Dimana command berupa shell script yang berjalan dengan Bourne Shell. Entri ini akan dapat dijalankan jika field 1 sampai dengan 5 bernilai benar
0 4 23 feb, jun sun sh runcron
Dua field pertama menunjukkan waktu pukul 04.00. field ketiga berarti tanggal 23, untuk field 4 dan 5 menunjukkan bulan februari dan juni. Contoh ini memang tidak realistis, dimana perintah akan dijalankan hanya pada setiap hari minggu yang jatuh pada tanggal 23 bulan februari dan juni.
Agar dapat menjalankan perintah pada entri cron agar dijalankan setiap hari anda dapat memberikan tanda asterik (*) pada field 3, 4 dan 5 sehingga perintah yang anda berikan tidak dibatasi oleh kondisi field 3,4 dan 5. Berikut adalah contoh pada entri tersebut
0 4 * * * find /tmp -atime 3 -exec rm {} \;
Jika anda menginginkan perintah tersebut dijalankan setiap diawal bulan, tambahkan angka 1 pada field ketiga sehingga menjadi :
0 4 1 * * find /tmp -atime 3 -exec rm {} \;
Berikut ini adalah contoh entri yang akan dijalankan setiap tanggal 1 dan 20 tiap bulan :
0 4 1,20 * * find /tmp -atime 3 -exec rm {} \;
sedangkan untuk menjalankan cron agar dieksekusi setiap tanggal 1 sampai dengan tanggal 15 tiap bulannya, seperti pada entri berikut ini :
0 4 1-15 * * find /tmp -atime 3 -exec rm {} \;
Dengan memberikan tanda slash (/) pada entri ketiga akan membuah perintah dijalankan setiap 3 hari seperti contoh berikut ini :
0 4 */3 * * find /tmp -atime 3 -exec rm {} \;
Setelah itu yang harus anda lakukan adalah meletakkan entri tersebut didalam file crontab. Pada prompt lakukan perintah berikut ini :
# crontab e
Perintah diatas langsung akan membuka editor vi, bagi anda yang menggunakan emacs, sebelum anda mengetikkan perintah crontab -e, pada promt anda ketikkan perintah berikut (bourne shell) :
# export VISUAL = emacs.
Sedangkan pada c shell ketikkan perintah berikut ini :
# setenv VISUAL emacs.
Setelah editor terbuka, tuliskan entri untuk cron seperti pada contoh berikut ini :
# Menghapus file-file temporer yang berusia lebih dari tiga hari
# pada direktori /tmp
0 4 * * * find /tmp -atime 3 -exec rm {} \;
setelah keluar dari vi, secara otmatis akan tersimpan menjadi file crontab. Untuk melihat entri crontab anda ketikkan perintah crontab l pada prompt anda.