Apa itu Cron
Cron adalah utilitas penjadwalan yang serbaguna yang tersedia pada sistem berbasis Unix, seperti Linux dan macOS. Ini memungkinkan pengguna untuk mengotomatisasi tugas dengan menjalankan perintah atau skrip pada interval yang ditentukan, menjadikannya alat yang penting bagi administrator sistem, pengembang, dan bahkan pengguna biasa.
Pada intinya, Cron dirancang untuk mengotomatisasi tugas-tugas yang berulang, seperti pemeliharaan sistem, pencadangan data, dan pembuatan laporan. Ini sangat berguna untuk mengelola operasi yang membutuhkan resource tinggi, karena operasi tersebut dapat dijadwalkan untuk berjalan selama periode penggunaan sistem yang rendah. Dengan menguasai Cron, pengguna dapat mengoptimalkan alur kerja mereka dan meningkatkan efisiensi keseluruhan sistem mereka.
Sintaks dan Komponen Cron
Sebuah pekerjaan Cron terdiri dari dua elemen utama: ekspresi Cron dan perintah.
Ekspresi Cron
Ekspresi Cron adalah serangkaian bidang yang mendefinisikan jadwal untuk sebuah tugas. Ekspresi terdiri dari lima bidang, masing-masing mewakili unit waktu tertentu:
- Menit (0-59)
- Jam (0-23)
- Hari dalam bulan (1-31)
- Bulan (1-12)
- Hari dalam minggu (0-7; baik 0 maupun 7 mewakili Minggu)
Setiap bidang dipisahkan oleh spasi, dan Anda dapat menggunakan berbagai simbol untuk mendefinisikan jadwal:
- Asterisk (
*
): Mewakili semua nilai yang mungkin untuk bidang tersebut (misalnya, setiap menit atau setiap hari) - Koma (
,
): Menentukan nilai-nilai ganda untuk bidang tersebut (misalnya, "1,15" berarti tanggal 1 dan 15 dalam satu bulan) - Strip (
-
): Menunjukkan rentang nilai untuk bidang tersebut (misalnya, "1-5" mewakili hari Senin hingga Jumat) - Slash (
/
): Mendefinisikan nilai langkah, sering digunakan dengan asterisk untuk mewakili interval (misalnya, "*/2" pada bidang jam berarti setiap 2 jam)
Contoh Ekspresi Cron
Untuk membantu Anda memahami cara membuat ekspresi Cron Anda sendiri, berikut adalah beberapa contoh praktis beserta penjelasannya:
- Menjalankan perintah setiap menit:
* * * * * /path/to/command
- Menjalankan skrip setiap 5 menit:
*/5 * * * * /path/to/script.sh
- Menjalankan tugas setiap hari jam 3:30 pagi:
30 3 * * * /path/to/task
- Menjalankan pekerjaan setiap hari Senin pukul 6:00 sore:
0 18 * * 1 /path/to/job
- Menjalankan skrip pencadangan pada tanggal 1 dan 15 setiap bulannya pada tengah malam:
0 0 1,15 * * /path/to/backup.sh
- Menjalankan tugas setiap jam dari jam 9 pagi hingga 5 sore pada hari kerja:
0 9-17 * * 1-5 /path/to/task
- Menjalankan skrip laporan setiap 30 menit selama jam kerja (9 pagi hingga 6 sore), Senin hingga Jumat:
*/30 9-18 * * 1-5 /path/to/report.sh
- Menjalankan skrip pembersihan pada pukul 11:45 malam setiap akhir bulan:
45 23 * * * [ "$(date +'\%m')" != "$(date +'\%m' -d tomorrow)" ] && /path/to/cleanup.sh
- Menjalankan tugas setiap 10 menit selama minggu pertama bulan:
*/10 * 1-7 * 1-5 /path/to/task
Perintah Cron
Perintah adalah tugas yang akan dieksekusi oleh Cron. Ini bisa menjadi perintah shell yang sederhana, skrip, atau bahkan serangkaian perintah yang dipisahkan oleh titik koma.
Menyiapkan dan Mengelola Berkas Crontab
Crontab, singkatan dari "Cron table," adalah file yang berisi daftar pekerjaan Cron untuk pengguna tertentu. Setiap pengguna dapat memiliki file crontab mereka sendiri, yang memungkinkan penjadwalan tugas yang dipersonalisasi.
Membuat Crontab
Untuk membuat atau mengedit file crontab Anda, gunakan perintah berikut:
$ crontab -e
Ini akan membuka file crontab di editor teks default. Jika Anda ingin menggunakan editor yang berbeda, atur variabel lingkungan VISUAL
atau EDITOR
sesuai.
Mengedit Crontab
Di dalam file crontab, tambahkan pekerjaan Cron Anda sebagai baris terpisah, masing-masing dengan ekspresi Cron diikuti oleh perintah. Misalnya:
30 2 * * 1 /home/user/backup.sh
Pekerjaan ini akan menjalankan skrip backup.sh
pada jam 2:30 pagi setiap hari Senin. Simpan dan keluar dari editor untuk menginstal crontab.
Menampilkan dan Menghapus Crontab
Untuk menampilkan isi crontab Anda, gunakan perintah berikut:
$ crontab -l
Untuk menghapus crontab Anda secara keseluruhan, gunakan opsi -r
:
$ crontab -r
Referensi