Wednesday, December 14, 2011

Cara menjalankan Crontab di CentOS (64 Bit)

Untuk definisi tentang crontab silahkan dibaca di bagian referensi, untuk menjalankan cron :
/etc/init.d/crond start
atau
service crond start
crond dapat langsung aktif saat kita menyalakan pc (saat boot) caranya dengan mengetikkan perintah dibawah ini :
chkconfig --level 2345 cron on <-- untuk menghidupkan
chkconfig --level 2345 cron off <-- untuk mematikan
Ada tiga option untuk mengoperasikan crontab
crontab -e
merupakan perintah untuk melakukan penjadwalan dengan crontab, menambah maupun mengurangi tugas
crontab -l
merupakan perintah untuk menampilkan tugas yang sudah ada di dalam crontab -e

crontab -r
merupakan perintah untuk menghapus SEMUA tugas yang tertera pada crontab -e untuk menghapus beberapa tugas, lakukan dengan
crontab -e
Jika kita login sebagai root, maka kita dapat melakukan editing terhadap crontab user lain dengan cara
crontab -eu another_user
Batasan penggunaan crontab diatur oleh dua file, dua file tersebut belum tentu ada, dan mungkin perlu dibuat sendiri, kedua-duanya tidak harus ada semua, cukup salah satu saja yang ada, misalkan untuk cron.allow didalam file ini memuat nama user yang diperbolehkan untuk mengakses crontab, dan bila nama user tidak dimuat dalam cron.allow, secara otomatis user tersebut tidak diperbolehkan mengakses crontab.
/etc/cron.allow
Sebaliknya cron.deny berisi user yang tidak diperbolehkan untuk mengakses crontab, dan apabila nama user tidak dimuat dalam cron.deny, secara otomatis user tersebut diperbolehkan untuk mengakses crontab.
/etc/cron.deny
Contoh penggunaan crontab
touch /root/touch.sh
mcedit /root/touch.sh
isikan dengan
#!/bin/bashtouch /tmp/touch-$.txt
simpan dan lakukan chmod +x supaya script dapat di eksekusi
chmod +x /root/touch.sh
masukkan kedalan crontab untuk dijalankan setiap menit
crontab -e
isikan dengan
* 10 * * * /root/touch.sh
lalu periksa apakah pekerjaan tersebut suda terload kedalam crontab
cat /var/spool/cron/root
* 10 * * * /root/touch.sh <-- Sudah diload oleh crontab
Tugas yang kita tambahkan kedalam crontab sudah di load dan menunggu untuk dieksekusi
Untuk melihat apakah tugas yang kita masukkan kedalam crontab sudah di eksekusi atau belum
cat /var/log/cron
Nov 29 10:50:01 nebula CROND[12332]: (root) CMD (/root/touch.sh) <-- sudah dieksekusi
Nov 29 10:51:01 nebula CROND[12342]: (root) CMD (/root/touch.sh) <-- sudah dieksekusi
Nov 29 10:52:01 nebula CROND[12445]: (root) CMD (/root/touch.sh) <-- sudah dieksekusi
Nov 29 10:53:01 nebula CROND[12454]: (root) CMD (/root/touch.sh) <-- sudah dieksekusi
Nov 29 10:54:01 nebula CROND[12462]: (root) CMD (/root/touch.sh) <-- sudah dieksekusi
Periksa hasil eksekusi crontab
ls -al /tmp
-rw-r--r-- 1 root root 0 Nov 29 10:50 crontab-12332$.txt
-rw-r--r-- 1 root root 0 Nov 29 10:51 crontab-12342$.txt
-rw-r--r-- 1 root root 0 Nov 29 10:52 crontab-12445$.txt
-rw-r--r-- 1 root root 0 Nov 29 10:53 crontab-12454$.txt
-rw-r--r-- 1 root root 0 Nov 29 10:54 crontab-12462$.txt
Pada direktori /tmp tampak banyak file hasil crontab (membuat file crontab-$$ setiap menitnya), ini menunjukkan crontab sudah berjalan dengan baik.

Done

No comments: