Tahun III, Nomor 14, Juni 2001

Penjadwalan Tugas dengan cron dan at

Home
Halaman Muka
 

Konektivitas MySQL - Python

Menyaring Pornografi dengan Squid dan Ipchains

Tip StarWriter di StarOffice 5.2
 

 

Di Linux, kita dapat menentukan kapan suatu tugas atau program di-eksekusi.  Pengaturan waktu atau penjadwalan ini dapat berlangsung secara berulang maupun sesaat (hanya sekali eksekusi) di waktu yang akan datang. Contoh jadwal yang berulang, kita memerintahkan komputer untuk mengambil email setiap 30 menit, setiap hari. Contoh penjadwalan sesaat, komputer akan mengambil email besok siang pada jam 13.00. Bagaimana caranya? Dalam artikel ini, saya akan menjelaskan cara penggunaan cron untuk mengatur jadwal berulang dan at untuk jadwal sesaat. 

cron

cron dapat diaktifkan agar jalan saat Linux dinyalakan (boot) melalui ntsysv atau manual melalui terminal. Contoh cara mengaktifkan pada RedHat:

# /etc/rc.d/init.d/crond start 

cron merupakan program daemon yang setiap menit men-cek apakah ada perintah yang mesti dijalankan. Daftar atau tabel cron (crontab), yaitu file yang berisi jadwal perintah, ada di direktori spool (misalnya /var/spool/cron/). Nama file itu sama dengan nama user pemilik atau pembuat jadwal. Untuk membuat atau mengedit crontab, user dapat menggunakan program yang juga bernama crontab. Secara default, crontab akan menjalankan editor yang dijadikan standar, biasanya vi. Sebagai root, kita dapat mengedit langsung file crontab yang ada di direktori spool cron (/var/spool/cron/nama_user) atau menggunakan program bantu Linuxconf (khusus RedHat dan turunannya).

Ada 3 option dalam menjalankan crontab sebagai user biasa:
$ crontab -e (artinya mengedit atau membuat baru tabel cron atau daftar tugas).
$ crontab -l (artinya menampilkan daftar tugas yang telah ada).
$ crontab -r (artinya menghapus daftar tugas yang ada).
Sebagai root, kita dapat mengedit, melihat atau menghapus crontab user dengan tambahan option -u, misalnya:
# crontab -eu rus (artinya mengedit crontab yang dimilki user rus).

Format crontab
Sebuah crontab merupakan daftar program yang akan dijalankan secara berulang melalui terminal atau command line, lengkap dengan waktu kapan program tersebut dijalankan.  Setiap program dijadwalkan dalam satu baris dengan makna sebagai berikut:
menit jam tanggal bulan hari
Contoh crontab di bawah ini akan menjalankan fetchmail setiap menit (*), setiap jam (*), setiap hari/tanggal (*), setiap bulan (*) dan  setiap hari  dalam seminggu (*).
*  *  *  *  * fetchmail
Contoh berikut ini, fetchmail hanya dijalankan setiap (interval) 5 menit (*/5), antara jam 8 pagi hingga jam 5 sore (8-17), setiap hari Senin hingga Jumat (1-5). 
*/5 8-17  *  *  1-5 fetchmail
Nama (case sensitive) juga dapat digunakan untuk crontab, misalnya sun-sat (artinya Minggu hingga Jumat),  jan-dec (Januari - Desember).

Izin Menggunakan crontab
Ada 2 file yang berfungsi mengatur pemberian izin penggunaan crontab, yaitu /etc/cron.allow dan /etc/cron.deny.  Yang dicek pertama adalah cron.allow, yaitu daftar user yang diizinkan menggunakan crontab. User selain yang terdaftar di cron.allow tidak boleh menggunakan crontab. Bila cron.allow tidak ada,  cron.deny akan dibaca. User selain yang terdaftar di cron.deny diizinkan menggunakan crontab.  Jika kedua file tidak ada, semua user dapat menggunakan crontab. 

at

Perintah (command) at digunakan untuk membuat jadwal eksekusi sebuah atau lebih program di waktu yang akan datang. Ada 4 perintah yang terkait dengan at, yaitu:
1. at, artinya jalankan  perintah atau program pada watu yang ditentukan.
2. atq, artinya list atau tampilkan daftar perintah yang akan dijalankan.
3. atrm, artinya batalkan perintah yang telah dijadwal.
4. batch, artinya jalankan perintah jika tingkat beban sistem memungkinkan.
Sebelum menjalankan at, daemon at (atd) harus dijalankan, misalnya di RedHat dengan perintah sebagai berikut:
# /etc/rc.d/init.d/atd start
Contoh penulisan peintah at:
# at now + 2 minutes
at> fetchmail
at> <EOT> 
Catatan: <EOT> merupakan hasil penekanan tombol <Ctrl> <D>  atau ^D. Gambar-1 memperlihatkan tampilan ketika menjalankan perintah at tersebut, yang maksudnya adalah program fetchmail akan dijalankan 2 menit setelah menajalankan at ini.
Bentuk umum perintah at adalah:
at [-V] [-q <queue>] [-f <file>] [-mld] <TIME>
queue diganti dengan nama antrian, file adalah nama file yang berisi daftar perintah yang akan dijalankan, dam TIME adalah  spesifikasi waku yang akan dijelaskan kemudian. -m artinya mengirim email kepada user yang menjalankan at, -l artinya list (sama dengan atq), dan -d artinya delete (sama dengan atrm).

Spesifikasi Waktu
Selain now (sekarang), waktu juga dapat dinyatakan dengan today (hari ini), tomorrow (hari esok), 4am (jam 4 pagi), 4pm (jam 4 sore), dll.  Penulisan waktu ini dapat secara mutlak atau relatif.  Contoh, jika saat ini hari Senin, tanggal 16 April 2001, dan kita ingin menjalankan sebuah program pada pukul 4 sore pada hari Kamis atau 3 hari kemudian, ada 2 cara menuliskan perintah:
at 4pm + 3 days
atau
at 4pm April 19

Izin Menjalankan at
Seperti cron, at juga dikontrol oleh 2 file, /etc/at.deny dan /etc/at.allow.  /etc/at.allow akan dicek lebih dulu. Jika ada, hanya user yang tercatat di at.allow yang diizinkan menggunakan at.  Jika /etc/at.allow tidak ada, /etc/at.deny akan dicek. Semua user yang tidak tercantum di dalam at.deny dapat menjalankan at. Kebalikan dari cron, jika kedua file tidak ada, hanya superuser (root) yang diizinkan menggunakan at. 

Oleh Rusmanto <rusmanto@elektroindonesia.com>

| Konektivitas MySQL - Python  | Menyaring Pornografi dengan Squid dan Ipchains  |
| Tip StarWriter di StarOffice 5.2  |

Email : jakarta@jakarta.linux.or.id


| Home | Halaman Muka
 © 1999-2001  ELEKTRO Online
All Rights Reserved.
Last modified on :