Biểu thức cron: mỗi quý

0 0 1 1,4,7,10 * chạy mỗi quý. 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 1 1,4,7,10 *
Biểu thức cron
Mỗi quý
Lịch chạy

Mở trong Cron Expression Generator →

Ý nghĩa của 0 0 1 1,4,7,10 *

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 quý, các trường như sau:

TrườngGiá trịÝ nghĩaPhạm vi
Phút000–59
Giờ000:000–23
Ngày trong tháng111–31
Tháng1,4,7,10Tháng 1, Tháng 4, Tháng 7, Tháng 101–12
Thứ trong tuần*mọi ngày trong tuần0–6 (CN–T7)

Lần chạy tiếp theo

Được tính trong 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 thường dùng

  • Báo cáo hàng quý
  • Xoay vòng thông tin xác thực
  • Lưu trữ dữ liệu

Lưu ý

Nửa đêm ngày 1 tháng 1, 1 tháng 4, 1 tháng 7 và 1 tháng 10. 0 0 1 */3 * có cùng ý nghĩa.

Cách dùng trong crontab, GitHub Actions, Kubernetes và Node.js

crontab (crontab -e):

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

GitHub Actions (thời gian tính theo UTC):

on:
  schedule:
    - cron: '0 0 1 1,4,7,10 *'

Kubernetes CronJob:

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

Lịch liên quan

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

Biểu thức cron cho mỗi quý là gì?
0 0 1 1,4,7,10 *. Lệnh chạy vào phút 0; 00:00; ngày 1; tháng 1, 4, 7, 10.
Cron dùng múi giờ nào?
Cron truyền thống dùng múi giờ cục bộ của máy chủ, và nhiều máy chủ chạy theo UTC. GitHub Actions luôn dùng UTC. Kubernetes CronJob 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 bằng ngôn ngữ dễ hiểu kèm thời điểm chạy tiếp theo, sau đó kiểm tra nhật ký của job sau lần chạy đầu tiên theo lịch.