Làm thế nào để chạy công việc crontab mỗi tuần vào Chủ nhật


263

Tôi đang cố gắng tìm ra cách để điều hành một công việc crontab mỗi tuần vào Chủ nhật. Tôi nghĩ rằng những điều sau đây sẽ hoạt động, nhưng tôi không chắc liệu tôi có hiểu đúng không. Điều sau đây có đúng không?

5 8 * * 6

7
Câu hỏi là về "chủ nhật" nhưng câu trả lời được chấp nhận là về "thứ bảy". Được không?
inigomedina 30/03/2016

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

Câu trả lời:


481

Dưới đây là một lời 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, bạn 5 8 * * 0sẽ chạy 8:05 mỗi Chủ nhật.


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

193

Để thực hiện một cron vào Chủ nhật, bạn có thể sử dụng một trong hai cách sau:

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

Nơi 5 8tượng trưng cho thời gian trong ngày khi điều này sẽ xảy ra: 8:05.

Nói chung, nếu bạn muốn thực hiện một cái gì đó vào Chủ nhật, chỉ cần đảm bảo cột thứ 5 chứa một trong hai 0, 7hoặ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 làm trình chỉnh sửa để kiểm tra biểu thức cron của bạn.


14
Chỉ để giúp người khác tránh khỏi sai lầm ngớ ngẩn tôi vừa mắc phải, và đảm bảo rằng bạn đặt phút cho một thứ khác hơn * hoặc nó sẽ thực hiện vào mỗi phút trong giờ đó!
dùng2924019

40

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

{phút} {giờ} {ngày trong tháng} {tháng} {ngày trong tuần} {user} {path-to-shell-script}

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

0 0 * * 0 root /path_to_command

1
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 được bỏ qua khi chỉnh sửa thông qua lệnh "crontab".)
Joachim Wagner

1
Nửa đêm chủ nhật là 0 giờ của thứ Hai, tức là 0 0 * * 1.
Fred Loney

5

Khi chỉ định giá trị cron của bạn, bạn sẽ cần đảm bảo rằng giá trị của bạn nằm trong phạm vi. Chẳng hạn, một số cron sử dụng phạm vi 0-7 cho ngày trong tuần, trong đó cả 0 và 7 đại diện cho Chủ nhật. Chúng tôi không (kiểm tra bên dưới).

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

tham khảo: https://github.com/ncb000gt/node-cron


3
"chúng ta là ai ? chương trình và phiên bản nào?
Massimo

Nó trực tiếp từ liên kết: D
Mendon Ashwini

2

Biểu hiện công việc cron theo cách dễ hiểu của người xây dựng crontab


1
Imho, đây không phải là một câu trả lời vì nó không thêm bất cứ điều gì ở đây, và cũng không trả lời câu hỏi ở đây theo bất kỳ cách nào.
Pankaj


0

10 * * * CN

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. 

2
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 . Ví dụ, câu trả lời thường có một số thông tin mới bị thiếu trong các câu trả lời hiện có.
doz10us

7
cái này sẽ chạy 24 lần vào chủ nhật, 10 phút qua mỗi giờ.
Jens Timmerman

0

@weekly làm việc tốt hơn cho tôi! example,add the fellowing crontab -e ,it will work in every sunday 0:00 AM @weekly /root/fd/databasebackup/week.sh >> ~/test.txt


0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
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.