Intro - No stand alone

Cron builder online — tạo và kiểm tra cron expression trực quan

Admin
May 31, 2026
6 phút đọc
3

Mỗi ngày lúc 2 giờ sáng chạy backup database. Mỗi thứ Hai đầu tuần gửi email báo cáo. Mỗi 15 phút ping để kiểm tra server còn sống không. Tất cả những tác vụ định kỳ đó đều cần cron expression — và viết đúng cú pháp không phải lúc nào cũng dễ nhớ. Tool Cron Builder này cho phép bạn tạo cron expression bằng giao diện kéo thả trực quan, không cần nhớ cú pháp.

Cron là gì?

Cron là trình lập lịch tác vụ (job scheduler) có mặt trên hầu hết hệ thống Unix/Linux. Cron đọc file cấu hình gọi là crontab — trong đó mỗi dòng là một job với một cron expression mô tả lịch chạy.

Ngày nay cron expression được dùng rộng rãi hơn cả Linux crontab — từ GitHub Actions, AWS EventBridge, Google Cloud Scheduler, Kubernetes CronJob, đến các framework như Laravel Task Scheduling, Django-celery, Spring Boot Quartz, Node.js node-cron.

Cấu trúc cron expression

Một cron expression tiêu chuẩn gồm 5 trường, cách nhau bởi dấu cách, theo thứ tự: Phút (0-59)Giờ (0-23)Ngày trong tháng (1-31)Tháng (1-12)Ngày trong tuần (0-7). Ví dụ: 0 2 * * * nghĩa là mỗi ngày lúc 2:00 AM.

Một số hệ thống (AWS, Quartz, GitHub Actions) dùng 6 trường — thêm trường Giây ở đầu hoặc trường Năm ở cuối. Tool này hỗ trợ cả hai định dạng.

Cách sử dụng Cron Builder

  • Chế độ Visual: Chọn tần suất (mỗi phút, giờ, ngày, tuần, tháng), điền giá trị vào các ô — expression tự động được tạo ra phía dưới.
  • Chế độ Manual: Gõ thẳng cron expression vào ô nhập liệu — tool parse và giải thích bằng tiếng Anh rõ ràng, đồng thời hiển thị 5 lần chạy tiếp theo.
  • Copy: Nhấn copy để lấy expression dùng trong code hoặc cấu hình hệ thống.

Ký hiệu đặc biệt trong cron expression

Ký hiệuTênÝ nghĩaVí dụ
*WildcardMọi giá trị hợp lệ* ở trường giờ = mọi giờ
,ListLiệt kê nhiều giá trị1,3,5 = thứ 2, 4, 6
-RangeKhoảng từ-đến9-17 = từ 9h đến 17h
/StepMỗi n đơn vị một lần*/15 = mỗi 15 phút
LLastNgày cuối tháng hoặc tuầnL ở trường ngày = ngày cuối tháng
WWeekdayNgày làm việc gần nhất15W = ngày làm việc gần ngày 15
#Nth weekdayThứ N trong tháng1#3 = thứ 2 lần thứ 3 trong tháng
?No valueKhông xác định (Quartz/AWS)Dùng khi đã set ngày tháng, không muốn set ngày tuần

Ví dụ cron expression thực tế

Cron ExpressionLịch chạyUse case
* * * * *Mỗi phút một lầnHeartbeat check, polling liên tục
0 * * * *Đầu mỗi giờSync dữ liệu theo giờ
0 2 * * *Mỗi ngày lúc 2:00 AMBackup database, cleanup log
0 9 * * 1Thứ Hai mỗi tuần lúc 9:00 AMGửi báo cáo đầu tuần
0 0 1 * *Ngày 1 mỗi tháng lúc 00:00Billing cycle, monthly report
*/15 * * * *Mỗi 15 phútHealth check, cache refresh
0 9-17 * * 1-5Mỗi giờ trong giờ làm việc T2-T6Sync dữ liệu giờ hành chính
0 0 * * 0Chủ nhật lúc nửa đêmWeekly maintenance, full backup
30 23 L * *23:30 ngày cuối mỗi thángEnd-of-month processing
0 6 1 1 *6:00 AM ngày 1 tháng 1Tác vụ đầu năm mới

Cron expression trên các nền tảng phổ biến

Nền tảngĐịnh dạngLưu ý
Linux crontab5 trường tiêu chuẩnChỉnh sửa bằng crontab -e
GitHub Actions5 trường — UTC timezoneDùng trong on.schedule.cron, luôn là UTC
AWS EventBridge6 trường, dùng ?Không thể set cả ngày-tháng và ngày-tuần, phải dùng ?
Kubernetes CronJob5 trường — chuẩn LinuxNên dùng UTC để tránh nhầm lẫn timezone
Laravel SchedulerCron string hoặc helper method->cron('0 2 * * *') hoặc ->dailyAt('02:00')
Quartz (Java)6-7 trường (giây đứng đầu)Trường giây đứng đầu — khác crontab Linux

Lưu ý quan trọng khi dùng cron

  • Timezone luôn là bẫy: Cron chạy theo timezone của server. Nếu server ở UTC và bạn muốn chạy lúc 8:00 AM giờ Việt Nam (UTC+7), phải đặt 0 1 * * *. Nhiều lỗi production xuất phát từ nhầm lẫn timezone này.
  • Test trước khi deploy: Dùng tool này để xem danh sách 5-10 lần chạy tiếp theo, đảm bảo lịch đúng ý trước khi push lên production.
  • Tránh chạy đúng phút 0 giờ 0:0 0 * * * là thời điểm nhiều hệ thống cùng chạy — gây spike tải. Thêm offset như 17 0 * * * để phân tán tải.
  • Không có giây trong crontab Linux: Nếu cần chạy mỗi 30 giây, phải dùng hai dòng cron hoặc công cụ khác (systemd timer, Quartz).

Kết luận

Cron expression trông đáng sợ lúc đầu nhưng thực ra có logic rất rõ ràng. Sau vài lần dùng bạn sẽ đọc và viết được những expression thông thường mà không cần tra cứu. Còn với những lịch phức tạp — cứ paste vào đây, xem giải thích và danh sách lần chạy tiếp theo là yên tâm rồi.

Khám phá thêm các tool hữu ích tại codetuthub.com/tools.

Toàn Nguyễn
Toàn NguyễnTác giả

Tác giả tại CodeTutHub

Xin chào, mình là Toàn 👋
Là Senior Full-Stack Developer ở HCM, đồng thời là người đứng sau CodeTutHub. Mình viết về những gì mình thực sự dùng hàng ngày — từ Laravel, Next.js, đến cách workflow lập trình với AI agents như Claude Code và Cursor.
Nếu bạn thấy bài này hữu ích, hãy subscribe newsletter hoặc kết nối với mình. Mình luôn sẵn sàng thảo luận về dự án thú vị, cơ hội remote, hoặc đơn giản là chat về tech.
Ho Chi Minh City · Open for collaboration

0 Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!
Đang trả lời
Xoá bình luận

Bạn có chắc muốn xoá bình luận này?
Hành động này không thể hoàn tác.

Thông báo hệ thống
Thông tin