TanodTools
VI

Tạo biểu thức cron

Tạo lịch crontab từ những lựa chọn đơn giản, rồi kiểm tra nó diễn đạt thế nào bằng ngôn ngữ thông thường và khi nào nó chạy tiếp theo.

Chạy hoàn toàn trong trình duyệt của bạn

Biểu thức cron

* * * * *

Dán biểu thức năm trường hoặc một lối tắt như @daily.

Những lần chạy kế tiếp

Để trống để bắt đầu từ bây giờ.

    Đã có biểu thức và chỉ muốn được giải thích? Hãy dùng Giải thích biểu thức cron.

    Cron chuẩn năm trường như Vixie cron và cronie dùng: phút, giờ, ngày trong tháng, tháng và ngày trong tuần. Quartz và các định dạng có trường giây khác không được tạo ra, và biểu thức dán vào mà các nút điều khiển không hiển thị được sẽ được giữ nguyên như đã gõ.

    Cách tạo biểu thức cron

    1. Bắt đầu từ một mẫu có sẵn, hoặc đặt từng trường chạy mọi lúc, mỗi N đơn vị kể từ một điểm bắt đầu, vào các giá trị cụ thể hoặc giữa hai giá trị.
    2. Kiểm tra biểu thức, mô tả bằng ngôn ngữ thông thường và các lần chạy kế tiếp theo múi giờ mà máy chủ của bạn dùng.
    3. Sao chép biểu thức vào crontab, lịch CI hoặc trình lập lịch của bạn. Bạn cũng có thể dán một biểu thức có sẵn để nạp vào các nút điều khiển.

    Tạo lịch cron

    Biểu thức cron gồm năm trường cách nhau bằng dấu cách: phút, giờ, ngày trong tháng, tháng và ngày trong tuần. Mỗi trường trả lời một câu hỏi về thời điểm tác vụ nên chạy, và tác vụ chạy khi tất cả đều khớp. Để một trường là * nghĩa là mọi giá trị, đó là lý do 0 * * * * chạy vào đầu mỗi giờ và 0 0 * * * chạy mỗi ngày một lần lúc nửa đêm.

    Công cụ tạo cho mỗi trường bốn cách để nói điều bạn muốn. Một bước nhảy như */15 nghĩa là cứ mỗi 15 giá trị, một danh sách như 1,15 chọn các giá trị cụ thể, một khoảng như 9-17 bao gồm mọi thứ giữa hai giá trị, và * nghĩa là mọi giá trị. Khi bạn chọn các giá trị, ba giá trị liên tiếp trở lên được viết thành một khoảng, nên thứ Hai đến thứ Sáu cho ra 1-5 thay vì 1,2,3,4,5.

    Hai cái bẫy làm vướng hầu hết mọi người. Cron dùng đồng hồ của máy nó chạy, nên một tác vụ đặt lúc 09:00 chạy vào 09:00 giờ máy chủ, có thể không phải giờ của bạn; danh sách các lần chạy kế tiếp cho phép bạn kiểm tra ở nhiều múi giờ. Và khi cả trường ngày trong tháng lẫn ngày trong tuần đều bị giới hạn, tác vụ chạy khi một trong hai khớp, có thể nghĩa là nhiều lần chạy hơn bạn mong đợi.

    Mẹo

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

    Làm sao để chạy tác vụ mỗi 15 phút?

    Đặt Phút thành Mỗi 15 phút bắt đầu từ 0, cách này viết ra */15 * * * *. Tác vụ chạy vào phút 0, 15, 30 và 45 của mỗi giờ.

    Điểm bắt đầu khác 0 được viết như thế nào?

    Điểm bắt đầu như phút 5 với bước nhảy 10 được viết là 5-59/10, chạy vào 5, 15, 25, 35, 45 và 55. Dạng ngắn hơn 5/10 dùng được ở một số phiên bản cron nhưng bị các phiên bản khác từ chối, nên dạng dài là lựa chọn có tính di động.

    Vì sao một số ngày được chọn bằng khoảng còn số khác bằng danh sách?

    Ba giá trị liên tiếp trở lên được viết thành một khoảng, nên thứ Hai đến thứ Sáu là 1-5, còn thứ Hai, thứ Tư và thứ Sáu là 1,3,5. Cả hai đều có nghĩa chính xác là các giá trị bạn đã chọn.

    Chuyện gì xảy ra khi tôi đặt cả ngày trong tháng và ngày trong tuần?

    Cron chuẩn chạy tác vụ khi một trong hai khớp, chứ không phải cả hai. 0 9 1 * 1 chạy vào ngày mùng 1 của tháng và vào mọi thứ Hai. Công cụ thêm ghi chú khi lựa chọn của bạn rơi vào trường hợp đó.

    Các lần chạy kế tiếp dùng múi giờ nào?

    Múi giờ bạn chọn bên dưới biểu thức. Bản thân cron dùng múi giờ của máy hoặc container chạy nó, trừ khi crontab đặt CRON_TZ. Nhiều máy chủ dùng UTC, nên hãy kiểm tra trước khi tin một thời điểm.

    Công cụ có hỗ trợ giây, @daily hay cú pháp Quartz không?

    Nó chỉ tạo biểu thức năm trường. Dán @daily hoặc lối tắt khác vẫn dùng được và được chuyển thành năm trường tương ứng. Biểu thức sáu trường và kiểu Quartz bị từ chối, vì trường đầu tiên của chúng là giây. Giải thích biểu thức cron nói chi tiết về điều này.