thời gian công việc cron


8

Tôi muốn bắt đầu công việc định kỳ lúc 9:30 và sau đó làm việc cứ sau 5 phút và sau đó dừng lại vào 16:30 mỗi ngày. Đây có phải là loại lịch trình có thể trong một hoặc tôi cần hai công việc định kỳ?

Câu trả lời:


10

Tôi nghĩ một cái gì đó dọc theo dòng:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

Xem trang wiki để biết chi tiết về cú pháp thời gian. Tôi đề nghị kiểm tra điều này với một tập lệnh ghi lại thời gian nó chạy vào một tập tin.

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log

2
tôi đã rất ngạc nhiên khi thấy "30/5" được sử dụng, vì vậy tôi đã xem mã nguồn cron, cụ thể là entry.c, để phân tích từng dòng của một crontab. trong hàm get_range (), nó kiểm tra xem ký tự sau số đầu tiên (30 trong ví dụ này) có phải là '-' hay không. nếu không, '/' sẽ không bao giờ được nhìn thấy. Đây là một lỗi; nó đã được in một cảnh báo (hoặc thông báo lỗi) của biểu mẫu, "'/' chỉ có ý nghĩa sau một phạm vi * hoặc một bước sóng". xin lỗi các bạn!
Paul Vixie

7

bạn sẽ cần ba mục crontab:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

xin đừng đổ lỗi cho linux, hoặc bsd, hoặc tôi, vì cú pháp kỳ quái và vô dụng của các mục crontab. điều này đã được phát minh tại AT & T Bell Labs, và sau đó được tiêu chuẩn hóa như một phần của POSIX.


4

Tôi nghĩ bạn cần ba công việc:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
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.