2013-02-22 22 views
20

Tôi đang cố gắng thực hiện một công việc crontab đơn giản để chạy 15 phút một lần và gặp sự cố khi quyết định cách định dạng thời gian.Định dạng Crontab - cứ 15 phút

Những gì tôi đã được đặt xuống như sau:

15 * * * * ------------------------ 

Tôi khá chắc chắn điều này chỉ chạy 15 phút đầu tiên của mỗi giờ.

Tôi nghĩ rằng crontab cho phép người dùng để xác định thời gian chính xác để chạy, cụ thể là:

0, 15,30,45 * * * * ------------------------- 

Nhưng nếu tôi muốn chạy crontab mỗi 15 phút từ lúc tôi bắt đầu nó, (có thể không nhất thiết phải trên một giá trị chia hết cho 15), làm thế nào tôi sẽ đi về định dạng mà/là có thể?

+0

"Thời điểm bạn khởi động ứng dụng" là gì? Khi bạn đã hoàn thành 'crontab -e'? Khi hệ thống của bạn đã khởi động? –

Trả lời

34

Crontab không nhớ những gì khi bạn "bắt đầu" (có lẽ là thời gian bạn thực hiện các crontab -e hoặc crontab filename lệnh).

Nếu bạn muốn chạy công việc sau mỗi 15 phút bắt đầu từ một thời gian tùy ý, bạn sẽ phải chỉ định thời gian đó. Điều này:

7-59/15 * * * * command 

sẽ chạy ở 7, 22, 37 và 52 phút sau mỗi giờ. Đó là giả sử bạn đang chạy Vixie cron, đó là triển khai phổ biến nhất. Để có tính di động tốt hơn, bạn có thể sử dụng:

7,22,37,52 * * * * command 

Và hãy nhớ rằng bạn không thể có khoảng trắng trong bất kỳ trường nào trong 5 trường đầu tiên; 0, 15,30,45, như bạn có trong câu hỏi của mình, không hợp lệ.

+1

Để rõ ràng - crond chạy mỗi phút một lần. Đó là daemon chạy các mục crontab cho bạn. Nếu bạn KHÔNG sử dụng crontab để chỉnh sửa tệp crontab, crond sẽ không thấy các thay đổi. Nếu bạn sử dụng crontab, "bây giờ" là lần thực hiện đầu tiên của crond sau khi bạn lưu tệp. –

+0

@jimmcnamara: Nếu bạn sử dụng một cái gì đó khác hơn là 'crontab' để chỉnh sửa tập tin crontab - tốt, chỉ cần không làm điều đó. Chỉnh sửa tập tin trực tiếp yêu cầu (a) biết nó ở đâu, và (b) sử dụng quyền truy cập root. Không sử dụng quyền truy cập root cho * mọi thứ * trừ khi nó thực sự cần thiết và bạn biết mình đang làm gì. –

+1

'7/15' làm phút không được hỗ trợ trên Ubuntu 16.04.2 LTS. '*/15' hoạt động – sdaffa23fdsf

26

Bạn sẽ định dạng crontab như thế này để chạy nó sau mỗi 15 phút.

*/15 * * * * [path/to/script]

+9

Việc triển khai 'crontab' phổ biến nhất không hỗ trợ cú pháp đó. Nếu bạn cần tính di động tối đa, hãy thay đổi '*/15' thành' 0,15,30,45'. –