Ekspresi cron: setiap Senin pertama dalam bulan

0 9 1-7 * * berjalan setiap Senin pertama dalam bulan. Berikut arti tiap field, kapan jalannya berikutnya, dan cara memakainya di crontab, GitHub Actions, Kubernetes, serta Node.js.

Diperbarui

0 9 1-7 * *
Ekspresi cron
Setiap Senin pertama dalam bulan
Jadwal

Buka di Cron Expression Generator →

Arti 0 9 1-7 * *

Cron membaca lima field dari kiri ke kanan: menit, jam, tanggal dalam bulan, bulan, dan hari dalam minggu. Untuk setiap Senin pertama dalam bulan, nilainya adalah:

FieldNilaiArtiRentang yang diizinkan
Menit000–59
Jam909:000–23
Tanggal dalam bulan1-71 sampai 71–31
Bulan*setiap bulan1–12
Hari dalam minggu*setiap hari dalam minggu0–6 (Min–Sab)

Jadwal berikutnya

Dihitung di browser untuk zona waktumu. Di server, cron memakai zona waktu server (sering kali UTC).

  1. Aktifkan JavaScript untuk melihat waktu jalan berikutnya.

Penggunaan umum

  • Rapat tim bulanan
  • Laporan bulanan pada hari kerja

Perlu diketahui

Cron standar tidak bisa langsung menyatakan “Senin pertama”. Jalankan pada pukul 9:00 di tanggal 1–7, lalu biarkan perintah hanya lanjut jika hari itu Senin: 0 9 1-7 * * [ "$(date +\%u)" = 1 ] && /job.sh. Jangan tulis 0 9 1-7 * 1: jika kedua field tanggal diisi, cron klasik berjalan ketika salah satu cocok, sehingga job juga akan berjalan setiap Senin.

Pakai di crontab, GitHub Actions, Kubernetes, dan Node.js

crontab (crontab -e):

0 9 1-7 * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1

GitHub Actions (waktu dalam UTC):

on:
  schedule:
    - cron: '0 9 1-7 * *'

Kubernetes CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 9 1-7 * *"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: my-job
              image: alpine:3
              command: ["sh", "-c", "echo running"]

Node.js (node-cron):

import cron from 'node-cron';
cron.schedule('0 9 1-7 * *', () => {
  // your job
});

Jadwal terkait

Pertanyaan yang sering diajukan

Apa ekspresi cron untuk setiap Senin pertama dalam bulan?
0 9 1-7 * *. Jadwal ini berjalan pada menit 0; pukul 09:00; tanggal 1 sampai 7.
Zona waktu apa yang dipakai cron?
Cron klasik memakai zona waktu lokal server, dan banyak server berjalan dalam UTC. GitHub Actions selalu memakai UTC. CronJob Kubernetes memakai zona waktu controller kecuali kamu mengatur spec.timeZone (misalnya Europe/Berlin).
Bagaimana cara menguji ekspresi cron?
Tempel ekspresinya ke Cron Expression Generator untuk melihatnya dalam bahasa sederhana beserta waktu jalan berikutnya, lalu cek log job-mu setelah jadwal pertama berjalan.