Biểu thức cron: mỗi ngày lúc nửa đêm

0 0 * * * chạy mỗi ngày lúc nửa đêm. Dưới đây là ý nghĩa từng trường, thời điểm chạy tiếp theo và cách dùng trong crontab, GitHub Actions, Kubernetes và Node.js.

Cập nhật

0 0 * * *
Biểu thức cron
Mỗi ngày lúc nửa đêm
Lịch chạy

Mở trong Cron Expression Generator →

Ý nghĩa của 0 0 * * *

Cron đọc năm trường từ trái sang phải: phút, giờ, ngày trong tháng, tháng và thứ trong tuần. Với mỗi ngày lúc nửa đêm, các trường như sau:

TrườngGiá trịÝ nghĩaGiá trị cho phép
Phút000–59
Giờ000:000–23
Ngày trong tháng*mọi ngày trong tháng1–31
Tháng*mọi tháng1–12
Thứ trong tuần*mọi ngày trong tuần0–6 (Chủ nhật–Thứ bảy)

Lần chạy tiếp theo

Được tính trên trình duyệt của bạn theo múi giờ của bạn. Trên máy chủ, cron dùng múi giờ của máy chủ (thường là UTC).

  1. Bật JavaScript để xem thời điểm chạy tiếp theo.

Các trường hợp dùng phổ biến

  • Sao lưu hằng đêm
  • Báo cáo hằng ngày
  • Đặt lại hạn mức hằng ngày

Cần lưu ý

Nửa đêm theo múi giờ của máy chủ (thường là UTC). @daily và @midnight có cùng ý nghĩa.

Dùng trong crontab, GitHub Actions, Kubernetes và Node.js

crontab (crontab -e):

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

GitHub Actions (giờ theo UTC):

on:
  schedule:
    - cron: '0 0 * * *'

Kubernetes CronJob:

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "0 0 * * *"
  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 0 * * *', () => {
  // your job
});

Lịch chạy liên quan

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

Biểu thức cron cho mỗi ngày lúc nửa đêm là gì?
0 0 * * *. Chạy ở phút 0, giờ 0; tức là 00:00.
Cron dùng múi giờ nào?
Cron truyền thống dùng múi giờ địa phương của máy chủ, và nhiều máy chủ chạy theo UTC. GitHub Actions luôn dùng UTC. CronJob trên Kubernetes dùng múi giờ của controller, trừ khi bạn đặt spec.timeZone (ví dụ Europe/Berlin).
Làm sao để kiểm tra biểu thức cron?
Dán biểu thức vào Cron Expression Generator để xem ý nghĩa bằng ngôn ngữ dễ hiểu cùng thời điểm chạy tiếp theo, rồi kiểm tra log của công việc sau lần chạy đầu tiên.