Biểu thức cron: vào ngày cuối cùng của tháng

0 0 28-31 * * chạy vào ngày cuối cùng của tháng. 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 28-31 * *
Biểu thức cron
Vào ngày cuối cùng của tháng
Lịch chạy

Mở trong Cron Expression Generator →

Ý nghĩa của 0 0 28-31 * *

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 vào ngày cuối cùng của tháng, các trường như sau:

TrườngGiá trịÝ nghĩaCho phép
Phút000–59
Giờ000:000–23
Ngày trong tháng28-3128 đến 311–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 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 dùng phổ biến

  • Chốt sổ cuối tháng
  • Báo cáo tháng cuối cùng

Điều cần biết

Cron chuẩn không có giá trị “ngày cuối cùng”. Hãy chạy vào các ngày 28–31 và để lệnh tự thoát trừ khi ngày mai là ngày 1: [ "$(date -d tomorrow +\%d)" = 01 ] && /job.sh. Quartz và một số bộ lập lịch hỗ trợ trực tiếp L.

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

crontab (crontab -e):

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

GitHub Actions (giờ theo UTC):

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

Kubernetes CronJob:

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

Lịch liên quan

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

Biểu thức cron cho vào ngày cuối cùng của tháng là gì?
0 0 28-31 * *. Lệnh chạy vào phút 0; 00:00; các ngày 28 đến 31.
Cron dùng múi giờ nào?
Cron cổ điển 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 của 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 bằng ngôn ngữ thường kèm thời điểm chạy tiếp theo, rồi kiểm tra log của job sau lần chạy đầu tiên.