Lewati ke konten utama

Generator Ekspresi Cron Job & Jadwal Crontab Linux

Generator ekspresi cron POSIX 5 kolom, baris crontab siap pakai, jadwal 5 eksekusi berikutnya, dan konversi unit systemd timer.

Parameter Input

Coba Contoh:

Hasil Perhitungan

Ekspresi Cron Standar
0 0 * * *
Jumlah Kolom Cron
5 Kolom
Format Standar POSIX 5 Kolom
Ya / Aktif
Penjelasan Jadwal (Bahasa Indonesia)
Setiap hari pada pukul 00:00 (tengah malam)
Status Logika OR Hari-Bulan vs Hari-Minggu
Tidak / Nonaktif
Jadwal Eksekusi ke-1
2026-11-08 00:00:00 (Sun)
Jadwal Eksekusi ke-2
2026-11-09 00:00:00 (Mon)
Jadwal Eksekusi ke-3
2026-11-10 00:00:00 (Tue)
Jadwal Eksekusi ke-4
2026-11-11 00:00:00 (Wed)
Jadwal Eksekusi ke-5
2026-11-12 00:00:00 (Thu)
Kolom Menit (0–59)
0
Kolom Jam (0–23)
0
Kolom Tanggal dalam Bulan (1–31)
*
Kolom Bulan (1–12)
*
Kolom Hari dalam Minggu (0–7)
*
Ingin membandingkan 2 opsi desain (misal: RAIDZ1 vs RAIDZ2, atau Cat6 vs Cat5e)?
⚡ Standar Hardening & Operasional Produksi
Debian 12 / Ubuntu 24.04 LTS + Nftables + Systemd Timer
CIS Benchmark Level 1 • Non-Root SSH Key-Only + Fail2ban/CrowdSec

Uji aturan firewall dan skrip cron pada lingkungan staging terlebih dahulu, dan simpan backup konfigurasi di Git.

Baris Konfigurasi Crontab (crontab -e)
0 0 * * * /usr/local/bin/backup-job.sh >/dev/null 2>&1
Konfigurasi Ekuivalen Systemd (.timer & .service)
# /etc/systemd/system/infracalc-job.timer
[Unit]
Description=Scheduled Job (Every day at 00:00 (midnight))

[Timer]
OnCalendar=*-*-* 00:00:00
Persistent=true

[Install]
WantedBy=timers.target

# /etc/systemd/system/infracalc-job.service
[Unit]
Description=Scheduled Job Service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-job.sh
Jadwal 10 Eksekusi Berikutnya
#Waktu EksekusiTimezoneISO 8601
12026-11-08 00:00:00 (Sun)Asia/Jakarta2026-11-07T17:00:00.000Z
22026-11-09 00:00:00 (Mon)Asia/Jakarta2026-11-08T17:00:00.000Z
32026-11-10 00:00:00 (Tue)Asia/Jakarta2026-11-09T17:00:00.000Z
42026-11-11 00:00:00 (Wed)Asia/Jakarta2026-11-10T17:00:00.000Z
52026-11-12 00:00:00 (Thu)Asia/Jakarta2026-11-11T17:00:00.000Z
62026-11-13 00:00:00 (Fri)Asia/Jakarta2026-11-12T17:00:00.000Z
72026-11-14 00:00:00 (Sat)Asia/Jakarta2026-11-13T17:00:00.000Z
82026-11-15 00:00:00 (Sun)Asia/Jakarta2026-11-14T17:00:00.000Z
92026-11-16 00:00:00 (Mon)Asia/Jakarta2026-11-15T17:00:00.000Z
102026-11-17 00:00:00 (Tue)Asia/Jakarta2026-11-16T17:00:00.000Z
Bagikan ke WhatsApp

Cara Menggunakan Alat Ini

  1. Pilih preset jadwal siap pakai (misal: setiap jam, harian tengah malam, atau hari kerja pukul 09:00) atau ketik ekspresi cron kustom pada kolom input.
  2. Tentukan zona waktu target (seperti Asia/Jakarta atau UTC) untuk memeriksa konversi jadwal lokal dan 10 waktu eksekusi riil berikutnya.
  3. Salin baris konfigurasi crontab lengkap yang telah disiapkan beserta redirect output (>/dev/null 2>&1) ke dalam file crontab server Anda via perintah 'crontab -e'.

Contoh Perhitungan Nyata: Jadwal Backup Harian Tengah Malam (00:00 WIB)

Contoh terhitung: Ekspresi '0 0 * * *' dengan perintah '/usr/local/bin/backup-job.sh' pada zona waktu Asia/Jakarta akan dieksekusi setiap hari tepat pukul 00:00:00 WIB (tengah malam). Jadwal ini menghasilkan baris crontab '0 0 * * * /usr/local/bin/backup-job.sh >/dev/null 2>&1' tanpa memicu peringatan logika OR.

Input Contoh
Preset Jadwal Populer
Harian Tengah Malam 00:00 (0 0 * * *)
Ekspresi Cron (5 atau 6 Kolom)
0 0 * * *
Zona Waktu Target Eksekusi
Asia/Jakarta (WIB, UTC+7)
Perintah / Skrip yang Dijalankan
/usr/local/bin/backup-job.sh
Output Terhitung
Ekspresi Cron Standar
0 0 * * *
Jumlah Kolom Cron
5 Kolom
Format Standar POSIX 5 Kolom
Ya / Aktif
Penjelasan Jadwal (Bahasa Indonesia)
Setiap hari pada pukul 00:00 (tengah malam)
Status Logika OR Hari-Bulan vs Hari-Minggu
Tidak / Nonaktif
Jadwal Eksekusi ke-1
2026-11-08 00:00:00 (Sun)
Jadwal Eksekusi ke-2
2026-11-09 00:00:00 (Mon)
Jadwal Eksekusi ke-3
2026-11-10 00:00:00 (Tue)
Jadwal Eksekusi ke-4
2026-11-11 00:00:00 (Wed)
Jadwal Eksekusi ke-5
2026-11-12 00:00:00 (Thu)
Kolom Menit (0–59)
0
Kolom Jam (0–23)
0
Kolom Tanggal dalam Bulan (1–31)
*
Kolom Bulan (1–12)
*
Kolom Hari dalam Minggu (0–7)
*
Baris Konfigurasi Crontab (crontab -e)
0 0 * * * /usr/local/bin/backup-job.sh >/dev/null 2>&1
Konfigurasi Ekuivalen Systemd (.timer & .service)
# /etc/systemd/system/infracalc-job.timer [Unit] Description=Scheduled Job (Every day at 00:00 (midnight)) [Timer] OnCalendar=*-*-* 00:00:00 Persistent=true [Install] WantedBy=timers.target # /etc/systemd/system/infracalc-job.service [Unit] Description=Scheduled Job Service [Service] Type=oneshot ExecStart=/usr/local/bin/backup-job.sh

Konsep Dasar & Catatan Teknis

Cron adalah daemon penjadwal tugas latar belakang (background job scheduler) standar pada sistem operasi berbasis Unix dan Linux yang memungkinkan administrator sistem, insinyur DevOps, dan pengembang mengeksekusi skrip atau perintah otomatis pada interval waktu berkala yang ditentukan. Sintaks ekspresi cron standar POSIX terdiri dari lima kolom yang dipisahkan oleh spasi: menit (0–59), jam (0–23), tanggal atau hari dalam bulan (1–31), bulan (1–12 atau JAN–DEC), dan hari dalam minggu (0–7 dengan 0 dan 7 keduanya mewakili hari Minggu, atau SUN–SAT). Beberapa scheduler modern seperti Quartz dan Spring Boot memperluas format ini dengan menambahkan kolom keenam untuk detik di posisi paling depan. Salah satu aspek teknis paling krusial dan sering memicu kekeliruan dalam cron POSIX (IEEE Std 1003.1) adalah perilaku logika gabungan antara kolom hari dalam bulan (Day of Month) dan hari dalam minggu (Day of Week). Ketika kedua kolom tersebut sama-sama dibatasi secara eksplisit (artinya tidak bernilai wildcard tanda bintang *), cron tidak menerapkan perpotongan logika DAN (AND), melainkan menerapkan logika penggabungan ATAU (OR). Perintah akan dieksekusi apabila tanggal kalender cocok ATAU hari dalam minggu cocok. Pemahaman terhadap aturan ini sangat vital agar jadwal backup, rotasi log, sinkronisasi basis data, dan tugas pemeliharaan server tidak dieksekusi secara tak terduga di luar rencana operasional sistem. Dalam lingkungan server produksi Linux modern, administrator sistem juga perlu memperhatikan manajemen output standar (stdout/stderr), penguncian eksekusi tumpang-tindih (flock), serta alternatif unit systemd timer. Secara default, daemon cron mencoba mengirimkan setiap baris output perintah melalui agen email lokal (MTA); apabila MTA tidak dikonfigurasi, hal ini dapat menumpuk ribuan berkas spool yang menguras inode disk. Oleh karena itu, pengalihan aliran log secara eksplisit (seperti >/dev/null 2>&1 untuk mode senyap atau >> /var/log/cron-job.log 2>&1 untuk audit terpusat) maupun migrasi ke systemd .timer yang terintegrasi penuh dengan journalctl dan kontrol cgroup sangat direkomendasikan untuk menjaga keandalan, visibilitas audit, dan stabilitas operasional infrastruktur server produksi jangka panjang.

Cara Perhitungan (Rumus & Langkah)

Pertanyaan yang Sering Diajukan (FAQ)

Apa perbedaan antara ekspresi cron 5 kolom dan 6 kolom?

Format 5 kolom adalah standar POSIX (Vixie cron) tradisional di Linux: menit, jam, hari bulan, bulan, dan hari minggu. Format 6 kolom menambahkan kolom detik di posisi pertama (indeks 0), biasanya digunakan pada runtime Java (Quartz/Spring), AWS EventBridge, dan Node.js node-cron.

Bagaimana cara kerja logika OR antara hari dalam bulan dan hari dalam minggu?

Sesuai spesifikasi POSIX IEEE Std 1003.1, apabila kedua kolom (hari-bulan dan hari-minggu) dibatasi secara spesifik (tidak memakai *), cron akan berjalan jika salah satu syarat terpenuhi. Misalnya, '0 0 1,15 * 1' akan berjalan pada tanggal 1, tanggal 15, DAN setiap hari Senin.

Mengapa disarankan menambahkan '>/dev/null 2>&1' di akhir baris crontab?

Secara default, cron daemon di Linux mengirimkan seluruh keluaran stdout dan stderr perintah via daemon mail lokal (Postfix/Sendmail). Menambahkan '>/dev/null 2>&1' membuang output biasa dan error, mencegah kotak masuk mail lokal server membengkak dan memenuhi disk.

Apakah angka 0 atau 7 yang mewakili hari Minggu pada cron?

Dalam standar cron POSIX dan Vixie cron, angka 0 dan 7 keduanya valid dan sama-sama merepresentasikan hari Minggu. Urutan angka hari adalah 0=Minggu, 1=Senin, 2=Selasa, 3=Rabu, 4=Kamis, 5=Jumat, 6=Sabtu, dan 7=Minggu.