Crontab adalah aplikasi daemon (berjalan dibalik layar) yang digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi linux. Setiap user di sistem yang memiliki file crontab, mengijinkan file tersebut untuk melakukan suatu aksi yang telah dispesifikasikan sesuai waktu yang telah ditentukan. Crontab biasa digunakan untuk membuat backup secara otomatis, sinkronisasi files, dll.

  1. Install CronTab
    sudo apt-get install cron
  2. Melihat aktifitas crontab (Melihat schedule yang berjalan di sistem)
    sudo crontab -l
  3. Mengedit cron jobs (editor default dari cron adalah vi atau pico)
    sudo crontab -e
  4. Format penulisan cron
    Format penulisan crontab ditulis dengan format seperti ini :
    * * * * * /home/sigit/script.sh



    Penjelasan :
    5 bintang (*) diatas merepresentasikan bagian2 format tanggal yang berbeda, urutannya sebagai berikut :
    1. (* pertama) : menit (isian : 0 – 59)
    2. (* kedua) : jam (isian : 0 – 23)
    3. (* ketiga) : hari dari bulan / tanggal (isian : 1 – 31)
    4. (* keempat) : bulan (isian : 1 – 12)
    5. (* kelima) : hari dari minggu (isian : 0 – 6) –> 0 = minggu

  5. Menyimpan LogCrontab
    Supaya kita bisa memonitor pekerjaan crontab kita, hasil log bisa disimpan dalam file, caranya seperti berikut :
    @daily /home/sigit/script.sh 2>&1 >> /home/sigit/log/crontab_schedule.log

    atau bisa dikirim ke email (harus install mailx dulu), caranya :
    @daily /home/sigit/script.sh 2>&1 | mail -s “Cronjob Log sgt.wibowo@gmail.com

Contoh :

> Eksekusi setiap menit
* * * * * php /opt/lampp/htdocs/jobs/test.php
jadwal tersebut akan mengeksekusi perintah php pada setiap menit dari setiap jam, setiap hari, setiap minggu, setiap bulan.

> Eksekusi setiap Sabtu jam 12 siang
0 12 * * 6 /home/sigit/script.sh
(* pertama) artinya pada menit ke 0, (* kedua) artinya pada jam ke 12, (* ketiga) artinya pada tanggal berapapun, (* keempat) artinya pada setiap bulan, (* kelima) artinya pada setiap hari sabtu (6 = sabtu).

> Eksekusi pada jam 9 malam setiap hari kerja (Senin – Jumat)
0 21 * * 1-5 /home/sigit/script.sh
Artinya mirip-mirip dengan diatas, cuma (* kelima) diisi rentang, yaitu 1-5 (artinya senin-jumat)

> Eksekusi setiap menit ke 30 (setiap jam) pada setiap tanggal 1 (setiap bulan)
30 * 1 * * /home/sigit/script.sh

 

* TIPS DAN TRIK

Misalnya kita ingin menjalankan suatu perintah setiap 10 menit (tiap hari), penulisannya bisa seperti ini :

0,10,20,30,40,50 * * * * /home/sigit/script.sh

Tapi ada trik penulisan yang lebih mudah, caranya seperti ini :

*/10 * * * * /home/sigit/script.sh

arti dari (*/10) adalah total menit adalah 60, berarti 60/10.

 

* KODE-KODE SPESIAL

Crontab menyediakan kode-kode special untuk digunakan, berikut kodenya :

@reboot Run once, at startup
@yearly Run once a year “0 0 1 1 *”
@annually (same as @yearly)
@monthly Run once a month “0 0 1 * *”
@weekly Run once a week “0 0 * * 0”
@daily Run once a day “0 0 * * *”
@midnight (same as @daily)
@hourly Run once an hour “0 * * * *

Cara pemakaian :

@daily /home/sigit/script.sh

Note :

  • Sewaktu perintah eksekusi seperti “/home/sigit/script.sh”, perhatikan /home dimana harus diberikan tanda “/” terlebih dahulu.
  • Jangan menggunakan sintaks sudo, karena cron akan mengabaikan permintaan input password yang hasilnya adalah gagal.
  • Untuk backup PostgreSQL, password dapat ditulis diatas perintah backup dengan sintaks : export PGPASSWORD=”password_postgresql”

Sumber : http://gosigitgo.wordpress.com/2010/03/18/tutorial-penggunaan-crontab-scheduler-di-ubuntu/