2013-05-23 28 views
187

Tôi đang cố gắng tìm ra cách để chạy công việc crontab hàng tuần vào Chủ nhật. Tôi nghĩ rằng sau đây nên làm việc, nhưng tôi không chắc chắn nếu tôi hiểu một cách chính xác. Có đúng không?Cách chạy công việc crontab mỗi tuần vào Chủ Nhật

5 8 * * 6 
+6

Câu hỏi đặt ra là về 'chủ nhật' nhưng câu trả lời được chấp nhận là về 'thứ Bảy. ¿? – inigomedina

+6

Sử dụng trang web [https://crontab.guru/](https://crontab.guru/) để tạo bất kỳ biểu thức cron nào. – nbi

Trả lời

363

Dưới đây là giải thích về định dạng crontab.

# 1. Entry: Minute when the process will be started [0-60] 
# 2. Entry: Hour when the process will be started [0-23] 
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31] 
# 4. Entry: Month of the year when the process will be started [1-12] 
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday] 
# 
# all x min = */x 

Vì vậy, theo điều này, 5 8 * * 0 sẽ chạy 8:05 vào Chủ nhật hàng tuần.

+104

Để dễ đọc hơn, bạn có thể sử dụng một trong các mặt trời, mon, tue, wed, thu, fri hoặc sat'. Điều này cũng giúp bạn không phải chọn giữa việc sử dụng '0' hoặc' 7' cho chủ nhật. – flu

30

Sau đây là định dạng của tệp crontab.

{minute} {giờ} {ngày trong tháng} {month} {ngày trong tuần} {user} {path-to-shell-script}

Vì vậy, để chạy mỗi Chủ Nhật tại nửa đêm (Chủ nhật là 0 thường, 7 trong một số trường hợp hiếm):

0 0 * * 0 root /path_to_command 
+0

Bỏ phiếu để đề cập đến cách chỉ định lệnh để chạy mỗi lần. (Tuy nhiên, cột người dùng cần phải được bỏ qua khi chỉnh sửa qua lệnh "crontab"). –

119

để có một cron thực hiện vào ngày Chủ Nhật, bạn có thể sử dụng một trong những:

5 8 * * 0 
5 8 * * 7 
5 8 * * Sun 

đâu 5 8 đứng cho thời điểm ngày khi điều này xảy ra: 8:05.

Nói chung, nếu bạn muốn thực hiện điều gì đó vào ngày Chủ nhật, chỉ cần đảm bảo cột thứ 5 chứa một trong hai 0, 7 hoặc Sun. Bạn đã có 6, vì vậy nó đã chạy vào thứ Bảy.

Định dạng cho cronjobs là:

+---------------- minute (0 - 59) 
| +------------- hour (0 - 23) 
| | +---------- day of month (1 - 31) 
| | | +------- month (1 - 12) 
| | | | +---- day of week (0 - 6) (Sunday=0 or 7) 
| | | | | 
* * * * * command to be executed 

Bạn luôn có thể sử dụng crontab.guru như một trình soạn thảo để kiểm tra biểu thức cron của bạn.

+8

Chỉ để giúp người khác tránh nhầm lẫn sai lầm mà tôi vừa mới thực hiện và đảm bảo bạn đặt phút thành thứ gì đó khác * hoặc nó sẽ thực hiện vào từng phút của giờ đó! – user2924019

+2

crontab.guru rất hữu ích! cảm ơn vì đã chia sẻ – Nadir

3

Khi chỉ định giá trị cron bạn cần, hãy đảm bảo rằng giá trị của bạn nằm trong phạm vi. Ví dụ, một số cron's sử dụng một phạm vi 0-7 cho ngày trong tuần, nơi cả 0 và 7 đại diện cho chủ nhật. Chúng ta không.

Minutes: 0-59 
Hours: 0-23 
Day of Month: 1-31 
Months: 0-11 
Day of Week: 0-6 
+2

"chúng tôi" ... ai? chương trình và phiên bản nào? – Massimo

0

10 * * * Sun

Position 1 for minutes, allowed values are 1-60 
position 2 for hours, allowed values are 1-24 
position 3 for day of month ,allowed values are 1-31 
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 
+0

Xin chúc mừng câu trả lời đầu tiên của bạn tại StackOverflow! Hãy chắc chắn kiểm tra [Hướng dẫn trả lời] (https://stackoverflow.com/help/how-to-answer). Ví dụ, câu trả lời thường nên có một số thông tin mới bị thiếu trong các câu trả lời hiện có. – doz10us

+2

điều này sẽ chạy 24 lần vào chủ nhật, 10 phút qua giờ mỗi giờ. –

Các vấn đề liên quan