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?
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?
Câu trả lời:
Tôi đang đưa ra một câu trả lời thay thế ở đây mặc dù Trevor đã đúng.
Các @weekly
từ 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.weekly
tệ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 crontab
thay 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.
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-parts
sẽ không bao giờ được chạy theo cron
! Thay vào đó, anacron
phả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.
@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.
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).