Biểu thức cron: mỗi 30 phút

*/30 * * * * chạy mỗi 30 phút. 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

*/30 * * * *
Biểu thức cron
Mỗi 30 phút
Lịch chạy

Mở trong Cron Expression Generator →

Ý nghĩa của */30 * * * *

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 30 phút, các trường như sau:

TrườngGiá trịÝ nghĩaGiới hạn
Phút*/30mỗi 30 phút0–59
Giờ*mỗi giờ0–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 trong trình duyệt 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

  • Sao lưu gia tăng cho cơ sở dữ liệu có lưu lượng lớn
  • Tính lại dashboard
  • Kiểm tra ngày hết hạn SSL và tên miền

Lưu ý

Chạy vào phút :00 và :30. Dùng 15,45 * * * * để lệch thời gian so với các tác vụ nửa giờ khác.

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

crontab (crontab -e):

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

GitHub Actions (thời gian theo UTC):

on:
  schedule:
    - cron: '*/30 * * * *'

Kubernetes CronJob:

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

Lịch liên quan

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

Biểu thức cron cho mỗi 30 phút là gì?
*/30 * * * *. Lịch này chạy mỗi 30 phút.
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. 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ữ tự nhiên cùng thời điểm chạy tiếp theo, sau đó kiểm tra log của tác vụ sau lần chạy đầu tiên.