Cách chạy cron một lần, hàng ngày lúc 10 giờ tối


177

Tôi đã nhập:

* 22 * * * test > /dev/null

Tuy nhiên, tôi đang được thông báo qua email rằng điều này đang chạy mỗi phút. Tôi bối rối tôi đoán bởi vì tôi nghĩ rằng điều này là chính xác cho những gì tôi muốn.


3
Trang web này sẽ giải thích bất kỳ lịch trình cron nào: crontab.guru
Bruno Finger

Câu trả lời:


368

Tôi đoán nó đang chạy mỗi phút của giờ 22 tôi đoán. Hãy thử cách sau để chạy nó mỗi phút đầu tiên của giờ 22:

0 22 * * * ....

Mặc dù giờ 22 có thể tương đối tiết kiệm, vui lòng xem xét trường hợp đầu tiên của câu hỏi này
Martin Thoma

@MartinThoma luôn thử man crontrước, bạn nên tìm thứ bạn đang tìm kiếm.
Marc Simon

Hãy nhớ kiểm tra ngày của hệ thống, tôi tình cờ đặt crontab để bắt đầu công việc ở tuổi 22, nhưng nó thực sự bắt đầu lúc 23 vì hệ thống là UTC (vì vậy 22 đối với hệ thống là 23 đối với tôi trong GMT).
nnsense

Tôi đã nêu lên câu trả lời này nhưng tôi đã biết quy tắc này ... dù sao tôi cũng muốn xác nhận kiến ​​thức im lặng của mình: D
rnrneverdies

154

Dưới đây là một số ví dụ

  • Chạy mỗi 6 giờ vào 46 phút trước giờ:

    46 */6 * * *

  • Chạy lúc 2:10 sáng:

    10 2 * * *

  • Chạy lúc 3:15 sáng:

    15 3 * * *

  • Chạy lúc 4:20 sáng:

    20 4 * * *

  • Chạy lúc 5:31 sáng:

    31 5 * * *

  • Chạy lúc 5:31 chiều:

    31 17 * * *



25

Đây là những gì tôi nhìn vào mỗi khi tôi viết một mục crontab mới:

Để bắt đầu chỉnh sửa từ terminal -type:

 zee$ crontab -e

những gì bạn sẽ thêm vào tập tin crontab:

0 22 * * 0  some-user /opt/somescript/to/run.sh

Nó có nghĩa là gì

[ 
+ user => 'some-user',      
+ minute => 0’,             <<= on top of the hour.
+ hour => '22',              <<= at 10 PM. Military time.
+ monthday => '*',           <<= Every day of the month*
+ month => '*',              <<= Every month*
+ weekday => ‘*’,            <<= Everyday (0 thru 6) = sunday thru saturday
] 

Ngoài ra, hãy kiểm tra xem shell của máy bạn đang chạy và đặt tên cho tệp phù hợp HOẶC nó sẽ không thực thi.

Kiểm tra vỏ với một trong hai echo $SHELLhoặcecho $0

Nó có thể là "Vỏ (sh)Bourne, Vỏ Bourne (bash), Vỏ Korn (ksh)..vv"


1

Cú pháp cho crontab

* * * * * 

Minute(0-59) Hour(0-24) Day_of_month(1-31) Month(1-12) Day_of_week(0-6) Command_to_execute

Cú pháp của bạn

* 22 * * * test > /dev/null

công việc của bạn sẽ Thực thi mỗi phút vào lúc 22:00 giờ cả tuần, tháng và năm.

thêm một tùy chọn (0-59) tại địa điểm phút sẽ chạy nó một lần vào lúc 22:00 giờ cả tuần, tháng và năm.

0 22 * * * command_to_execute 

Nguồn https://www.adminschoice.com/crontab-quick-reference

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.