DevToolPal
VI

Biểu thức cron

Mỗi 12 giờ

Chạy hai lần mỗi ngày, lúc nửa đêm và giữa trưa.

0 */12 * * * 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ờ */12 0, 12
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. 12:00 Thứ 5, 1 thg 1, 2026
  2. 00:00 Thứ 6, 2 thg 1, 2026
  3. 12:00 Thứ 6, 2 thg 1, 2026
  4. 00:00 Thứ 7, 3 thg 1, 2026
  5. 12:00 Thứ 7, 3 thg 1, 2026
  6. 00:00 CN, 4 thg 1, 2026

Phiên bản dùng ngay

crontab
0 */12 * * * /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-12-hours
spec:
  schedule: "0 */12 * * *"
  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 */12 * * *'
  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 */12 * * ?

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 */12 * * *")

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

› Làm sao chạy mỗi 12 giờ lúc 6 giờ sáng và 6 giờ chiều?

Dùng 0 6,18 * * * hoặc 0 6-23/12 * * *.

› 0 */12 * * * 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 */12 * * * 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.