DevToolPal
VI

Biểu thức cron

Mỗi ngày lúc 3 giờ sáng

Chạy mỗi ngày một lần lúc 03:00, giờ thường dùng cho sao lưu và bảo trì.

0 3 * * * Mở trong Trình phân tích biểu thức Cron

Từng trường

Trường Giá trị Khớp với
Phút 0 0
Giờ 3 3
Ngày trong tháng * Mọi giá trị
Tháng * Mọi giá trị
Thứ trong tuần * Mọi giá trị

Các lần chạy tiếp theo

Ví dụ: 6 lần chạy đầu tiên sau 1 tháng 1, 2026 (UTC).

  1. 03:00 Thứ 5, 1 thg 1, 2026
  2. 03:00 Thứ 6, 2 thg 1, 2026
  3. 03:00 Thứ 7, 3 thg 1, 2026
  4. 03:00 CN, 4 thg 1, 2026
  5. 03:00 Thứ 2, 5 thg 1, 2026
  6. 03:00 Thứ 3, 6 thg 1, 2026

Phiên bản dùng ngay

crontab
0 3 * * * /path/to/command

Thêm dòng này bằng crontab -e. Lệnh chạy theo múi giờ của máy chủ, trừ khi đặt CRON_TZ hoặc TZ.

Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-day-at-3am
spec:
  schedule: "0 3 * * *"
  timeZone: "Etc/UTC"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: job
              image: busybox:1.36
              command: ["/bin/sh", "-c", "date; echo run"]

Đặt spec.timeZone (Kubernetes 1.27+); nếu không, lịch theo múi giờ của controller manager, thường là UTC.

GitHub Actions
on:
  schedule:
    - cron: '0 3 * * *'
  workflow_dispatch:

GitHub Actions luôn dùng UTC, chỉ chấp nhận khoảng cách từ 5 phút trở lên và có thể khởi chạy trễ khi tải cao.

Quartz
0 0 3 * * ?

Quartz đặt giây lên đầu và cần ? ở ngày trong tháng hoặc thứ trong tuần. Thứ được đánh số 1–7 bắt đầu từ Chủ nhật, nên dùng tên sẽ an toàn hơn.

Spring
@Scheduled(cron = "0 0 3 * * *")

Spring @Scheduled(cron = …) dùng sáu trường: giây, rồi đến năm trường quen thuộc.

Câu hỏi thường gặp

› Giờ mùa hè có ảnh hưởng tác vụ 3 giờ sáng không?

Có. Ở múi giờ đổi lúc 2 hoặc 3 giờ, giờ đó có thể bị bỏ qua hoặc lặp lại. Vixie cron bù trong một số trường hợp, nhưng chạy theo UTC sẽ tránh hẳn vấn đề.

› 0 3 * * * chạy theo múi giờ nào?

Cron dùng múi giờ của máy hoặc dịch vụ chạy nó. Trên Linux là múi giờ hệ thống, trừ khi đặt CRON_TZ hoặc TZ; CronJob của Kubernetes hỗ trợ spec.timeZone; GitHub Actions luôn dùng UTC.

› Làm sao kiểm tra lịch này trước khi triển khai?

Mở 0 3 * * * trong Trình phân tích biểu thức Cron trên trang này. Công cụ giải thích từng trường và liệt kê các lần chạy sắp tới theo giờ địa phương hoặc UTC, ngay trong trình duyệt.