Pembaca & Penyusun Jadwal Cron
Baris cron itu artinya apa, dan berapa kali sehari jalannya
Terjemahkan ekspresi cron menjadi kalimat, hitung berapa kali ia berjalan, dan susun baris crontab yang siap ditempel — lengkap dengan pengalihan log dan pencegah tumpang tindih.
Seluruh perhitungan berjalan di browser Anda. Alamat IP, nama interface, dan password yang Anda masukkan tidak pernah dikirim ke server CoreNet.
Yang paling berguna di sini adalah membacanya
Menyusun jadwal baru itu mudah. Yang sulit adalah membaca baris yang sudah ada di crontab orang lain — /15 3-5 * 1-5 sah, sering ditemui, dan hampir tidak pernah dibaca benar dalam sekali lihat.
Tool ini menerjemahkannya menjadi kalimat, lalu menghitung berapa kali sehari ia berjalan. Angka kedua itu yang biasanya mengejutkan.
Lima medan, urutannya
┌─ menit (0–59)
│ ┌─ jam (0–23)
│ │ ┌─ tanggal (1–31)
│ │ │ ┌─ bulan (1–12)
│ │ │ │ ┌─ hari (0–7, 0 dan 7 sama-sama Minggu)
│ │ │ │ │
* * * * **/5 berarti setiap kelipatan lima. 1-5 berarti rentang. 1,15 berarti dua nilai tertentu.
Jebakan yang sudah memakan banyak orang
Tanggal dan hari adalah "atau", bukan "dan". Bila keduanya diisi, cron menjalankan tugas pada tanggal yang cocok maupun pada hari yang cocok. Jadi 0 0 1 * 1 bukan berarti "tanggal 1 kalau jatuh Senin" — melainkan "setiap tanggal 1, dan juga setiap Senin". Bila yang diinginkan benar-benar irisan keduanya, cron tidak dapat menyatakannya; periksa harinya di dalam script.
PATH cron sangat pendek. Cron tidak membaca .bashrc maupun profil shell Anda. Perintah yang jalan mulus di terminal bisa gagal di cron hanya karena php tidak ditemukan. Tulis jalur penuh ke setiap program — ini penyebab nomor satu cron yang "tidak jalan padahal perintahnya benar".
Output menjadi email. Tanpa pengalihan, setiap baris output dikirim sebagai email lokal ke pemilik crontab. Pada server yang kotak emailnya tidak pernah dibaca, itu berarti file mail yang tumbuh diam-diam sampai penuh.
Tumpang tindih. Tugas yang berjalan lebih lama daripada jedanya akan bertumpuk. Jadwal per menit dengan tugas yang butuh tiga menit akan menghasilkan tiga salinan berjalan bersamaan, lalu enam, lalu server kehabisan memori. Centang "cegah tumpang tindih" untuk membungkusnya dengan flock.
Alternatif yang lebih baik untuk sebagian keperluan
systemd timer mencatat hasilnya rapi di journal, dapat menjalankan tugas yang terlewat karena mesin sedang mati, dan menyebar waktu mulai secara acak. Bila mesinnya sering dimatikan, generator unit systemd memberi hasil yang lebih dapat diandalkan daripada cron.
Pertanyaan yang sering diajukan
@daily dan @reboot itu apa? Pintasan yang dipahami sebagian besar cron modern. @daily sama dengan 0 0 *. @reboot berjalan sekali setiap mesin dinyalakan.
Kenapa cron saya jalan dua kali? Periksa apakah baris yang sama ada di crontab pengguna dan di /etc/cron.d/. Keduanya berjalan sendiri-sendiri.
Zona waktu mana yang dipakai? Zona waktu sistem. Periksa dengan timedatectl. Server yang disetel UTC akan menjalankan jadwal "pukul 2 pagi" pada pukul 9 pagi waktu Jakarta.
Lanjut ke
- Generator Unit systemd
- Generator Backup Terjadwal MikroTik untuk penjadwalan di sisi router.