Một cron hàng tuần bắt đầu vào ngày nào?


8

Tôi đã có một cái nhìn mặc dù người bạn thân nhưng không tìm thấy bất cứ điều gì có ích :(

Có ai biết không?


Điều này phù hợp hơn cho superuser, không?

Câu trả lời:


16

Tôi đang đưa ra một câu trả lời thay thế ở đây mặc dù Trevor đã đúng.

Các @weeklytừ khóa cron làm chính xác như ông đã đề cập. Tuy nhiên , hầu hết các bản phân phối sử dụng run-partsđể chạy các tệp crontab được lên lịch của riêng họ (trên cơ sở hàng giờ, hàng ngày, hàng tuần và hàng tháng) không sử dụng các từ khóa của cron.

Ví dụ , Ubuntu có một /etc/cron.weeklytệp chứa một tệp riêng cho mỗi cronjob.

Điều này thường được định nghĩa trong /etc/crontab

Bản phát hành nghiệp vụ 9.10 của Ubuntu có nội dung như sau /etc/crontab

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Vì vậy, crontab hàng tuần trong Ubuntu được chạy vào lúc 6.47 sáng Chủ nhật

Lưu ý: khi tìm kiếm các trang web để triển khai crontab, bạn muốn sử dụng man 5 crontabthay vì chỉ man crontab. Cái sau sẽ chỉ cung cấp cho bạn cú pháp cho lệnh crontab. Các cựu cung cấp cho bạn chi tiết thực hiện crontab.


Một chút kén chọn ở đây, phần 5 trong các trang hướng dẫn dành cho Định dạng và Quy ước về Tệp, do đó không thực hiện được. Nó chỉ định định dạng tệp và thường có các ví dụ
Steve Buzonas

7 là chủ nhật? Tôi nghĩ 0 là chủ nhật? (Và nếu nó bắt đầu lúc 1, tôi nghĩ 1 là Chủ nhật.)
felwithe

@felwithe Chủ nhật là cả 0 và 7, vì vậy bạn có thể chọn bất kỳ ngày nào phù hợp nhất vào ngày đầu tuần trong địa phương của bạn (Thứ Hai so với Chủ Nhật).
László van den Hoek

Tôi nghĩ rằng điều này là không chính xác, vì vậy hãy giúp tôi hiểu : So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Điều này là không chính xác bởi vì test -x /usr/sbin/anacron ||một phần của lệnh nói CHỈ chạy các công cụ ở bên phải ||nếu "/ usr / sbin / anacron" KHÔNG thể thực thi hoặc không tồn tại, tuy nhiên, nó run-partssẽ không bao giờ được chạy theo cron! Thay vào đó, anacronphải được xử lý nó, phải không? Bảng của Aanacron trong "/ etc / anacrontab" hiển thị điều này cho hàng tuần : 7 10 cron.weekly run-parts --report /etc/cron.weekly, có nghĩa là công việc hàng tuần được chạy mỗi ngày thứ 7 với độ trễ 10 phút.
Gabriel Staples

Nhưng ... tôi không biết khi nào anacron thực sự chạy hay nó quyết định điều đó như thế nào. Phải không
Gabriel Staples

8

@weekly tương đương với: 0 0 * * 0

Vì vậy, nó sẽ chạy vào 00:00 ngày Chủ nhật.


0

Câu trả lời nằm trong trang dành cho chính crontab, ( man 5 crontab):

Các "biệt danh" đặc tả thời gian đặc biệt này được hỗ trợ, thay thế 5 trường thời gian và ngày ban đầu và được thêm tiền tố bởi ký tự '@':

@reboot    :    Run once after reboot.
@yearly    :    Run once a year, ie.  "0 0 1 1 *".
@annually  :    Run once a year, ie.  "0 0 1 1 *".
@monthly   :    Run once a month, ie. "0 0 1 * *".
@weekly    :    Run once a week, ie.  "0 0 * * 0".
@daily     :    Run once a day, ie.   "0 0 * * *".
@hourly    :    Run once an hour, ie. "0 * * * *".

Vì vậy, 0 0 * * 0đó là 00:00 (vào bất kỳ ngày nào trong tháng), miễn là Chủ nhật (ngày trong tuần 0).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.