Membuat cron job dimulai dari jadwalnya
Cron menjalankan perintah secara berkala di Linux. Ekspresi cron menentukan waktunya, sedangkan crontab menyimpan jadwal beserta perintah yang harus dijalankan. Pada crontab pengguna, lima kolom waktu ditempatkan sebelum perintah.
Untuk backup database, pembersihan log, atau impor data, tentukan dulu kapan proses boleh berjalan. Generator ini membantu menyusun dan memeriksa jadwal tersebut. Tidak ada tugas yang dipasang ke VPS, dan keberhasilan skrip tetap perlu diuji di server.
Cara memakai generator crontab
- Pilih contoh jadwal terdekat, kemudian ubah kolom yang diperlukan.
- Gunakan daftar untuk beberapa nilai atau rentang untuk urutan nilai.
- Tempel ekspresi yang sudah ada tanpa bagian perintah untuk memeriksa sintaksnya.
- Cocokkan lima waktu berikutnya dalam UTC dengan zona server, lalu salin hasilnya.
Urutan kolom dan sintaks cron
Urutannya adalah menit, jam, tanggal dalam bulan, bulan, lalu hari dalam seminggu. Pisahkan dengan spasi. Minggu bisa ditulis 0 atau 7. Nama yang diterima di dalam kode adalah JAN–DEC dan SUN–SAT, bukan nama hari dalam bahasa Indonesia.
| Kolom | Rentang |
|---|---|
| Menit | 0–59 |
| Jam | 0–23 |
| Tanggal | 1–31 |
| Bulan | 1–12 |
| Hari | 0–7 |
- * memilih semua nilai pada kolom.
- , memisahkan beberapa nilai, misalnya 0,30.
- - membuat rentang termasuk kedua batasnya, misalnya 1-5.
- / menentukan langkah dalam kolom, misalnya
*/15.
Contoh cron job: tiap lima menit sampai bulanan
Jam pada contoh mengikuti zona waktu penjadwal. Rentang Senin–Jumat tidak memeriksa hari libur; tambahkan pemeriksaan itu di skrip jika memang diperlukan.
| Ekspresi | Jadwal |
|---|---|
*/5 * * * * | Setiap lima menit |
30 2 * * * | Setiap hari pukul 02:30 |
0 8 * * 1-5 | Senin–Jumat pukul 08:00 |
0 0 * * 0 | Setiap Minggu tengah malam |
0 0 1 * * | Tanggal 1 setiap bulan |
0 0 29 2 * | 29 Februari pada tahun kabisat |
Memasang jadwal di server Linux
Jalankan crontab -e untuk mengedit tugas milik pengguna saat ini. Baris berikut memanggil skrip backup setiap hari pukul 02:30 menurut zona waktu cron pada server.
Gunakan path absolut dan pastikan skrip punya izin eksekusi. Periksa juga layanan cron dan variabel lingkungan yang dibutuhkan. Jadwal yang benar tidak otomatis membuat perintah yang salah menjadi berhasil.
30 2 * * * /usr/local/bin/backup.shPertanyaan tentang cron dan zona waktu
Apakah jadwalnya sudah mengikuti WIB?
Belum. Pratinjau selalu dalam UTC, bukan WIB, WITA, atau WIT. Ekspresi cron tidak menyimpan zona waktu. Pastikan zona penjadwal di server sesuai kebutuhan sebelum menjalankan tugas.
Setiap lima menit dihitung sejak kapan?
*/5 pada kolom menit cocok dengan menit 0, 5, 10, dan seterusnya setiap jam. Ini bukan hitungan mundur lima menit sejak tugas disimpan.
Bagaimana jika tanggal dan hari sama-sama ditentukan?
Jika keduanya dibatasi, satu kecocokan sudah cukup. 0 9 1 * MON berjalan pada tanggal 1 atau hari Senin pukul 09:00. Jika salah satu kolom diawali *, kedua kondisi hari harus terpenuhi.
Bisa dipakai untuk Quartz atau jadwal dengan detik?
Alat ini hanya menerima lima kolom Linux cron. Detik, ?, L, W, #, dan @reboot tidak didukung. Alias @hourly, @daily, @weekly, @monthly, dan @yearly diubah menjadi lima kolom.
Mengapa hasil jadwal kosong atau kurang dari lima?
Pencarian dibatasi delapan tahun ke depan. Tanggal 31 Februari tidak pernah ada; jadwal 29 Februari bisa menghasilkan kurang dari lima tanggal karena hanya cocok pada tahun kabisat.
