2009-02-25 33 views
187

Tôi đang tìm cách thêm một mục nhập crontab để thực thi một tập lệnh sau mỗi 30 phút, vào giờ và 30 phút qua giờ hoặc thứ gì đó gần. Tôi có những điều sau đây, nhưng dường như không chạy trên 0.Làm thế nào tôi có được một công việc cron để chạy mỗi 30 phút?

*/30 * * * * 

Tôi cần sử dụng chuỗi nào?

Cron đang chạy trên OSX.

+0

Bạn đã thành công trong việc đưa crontab của mình hoạt động? Vấn đề của bạn có thể không phải là crontab, nhưng làm cho nó được sử dụng. – Eddie

+0

Nó đang chạy 2 tập lệnh khác, một tập lệnh mỗi phút. –

+1

Tôi đang chờ xem liệu một trong những câu trả lời dưới đây có hiệu quả không, chỉ cần đợi đến 30 phút tiếp theo là ... trong 3 phút. –

Trả lời

429

Đỗ:

0,30 * * * * your_command 
+1

Hoạt động tuyệt vời! Trong CentOS crontab, tôi đã phải làm một cái gì đó như '0,30 * * * * root your_command', nơi root sẽ là người dùng tôi đang sử dụng. – prograhammer

+1

Làm thế nào về điều này '0/30 * * * * your_command'? – ihue

+0

@prograhammer - Đây có phải là phần dòng của crontab của người chủ hoặc một số crontab của người dùng khác không? –

69

Hãy thử điều này:

0,30 * * * * your command goes here 

Theo quan chức này Mac OS X crontab(5) manpage, cú pháp / được hỗ trợ. Vì vậy, để tìm ra lý do tại sao nó không làm việc cho bạn, bạn sẽ cần phải nhìn vào các bản ghi cho cron. Trong các nhật ký đó, bạn nên tìm thấy thông báo lỗi rõ ràng.

Lưu ý: Mac OS X dường như sử dụng Vixie Cron, giống như Linux và BSD.

+0

Tôi đã luôn luôn sử dụng */30 với thành công nhưng tôi không nhớ lại một ứng dụng của tôi, nơi nó quá quan trọng nếu nó chỉ chạy một lần một giờ vì vậy tôi không nghĩ Tôi đã từng kiểm tra. –

+2

@Adam Hawes: Tôi cũng đã sử dụng */xx với thành công trong quá khứ, nhưng trên Linux và các UNIX khác. Tôi chưa đích thân dùng thử Mac OSX. Câu hỏi ban đầu không nói hệ điều hành nào. Một số UNIX cũ không hỗ trợ */xx – Eddie

+0

Câu trả lời của bạn cũng có hiệu quả, nhưng Vlad có ít đại diện hơn, vì vậy tôi đã cho anh ta điểm. –

4

Bạn đề cập đến bạn đang sử dụng OS X- Tôi đã sử dụng cronnix trong quá khứ. Nó không phải là geeky như chỉnh sửa nó cho mình, nhưng nó đã giúp tôi tìm hiểu những gì các cột đang ở trong một jiffy. Chỉ là một ý nghĩ.

+0

Điều này cũng có thể hữu ích. –

+0

@Allyn - hiện giờ đã là một liên kết chết. Điều này trông giống như mới: https://roaringapps.com/app/cronnix –

8

Nếu công việc cron của bạn chỉ chạy trên Mac OS X, bạn có thể muốn sử dụng launchd để thay thế.

Từ Scheduling Timed Jobs (official Apple docs):

Lưu ý: Mặc dù nó vẫn được hỗ trợ, cron không phải là một giải pháp khuyến khích. Nó đã bị phản đối vì lợi ích của launchd.

Bạn có thể tìm thêm thông tin (chẳng hạn như launchd Wikipedia page) bằng tìm kiếm web đơn giản.

54

crontab không hiểu "khoảng", nó chỉ hiểu "lịch trình" giờ

hợp lệ: 0-23 - phút hợp lệ: 0-59

dụ # 1

30 * * * * your_command

điều này có nghĩa là "chạy khi phút của mỗi giờ là 30" (sẽ chạy lúc: 1:30, 2:30, 3:30, v.v ...)

dụ # 2

*/30 * * * * your_command

này có nghĩa là "chạy khi biên bản mỗi giờ là chia hết cho 30" (sẽ chạy ở: 1:30, 2:00, 2 : 30, 3:00, vv)

dụ # 3

0,30 * * * * your_command

này có nghĩa là "chạy khi biên bản mỗi giờ là 0 hoặc 30" (sẽ chạy ở: 1:30, 2:00, 2:30, 3:00, vv)

nó khác cách để đạt được kết quả tương tự như ví dụ # 2

dụ # 4

19 * * * * your_command

này có nghĩa là "chạy khi phút của mỗi giờ là 19 "(sẽ chạy tại địa chỉ: 1:19, 2:19, 3:19, vv)

dụ # 5

*/19 * * * * your_command

này có nghĩa là" chạy khi phút của mỗi giờ là chia hết cho 19 "(sẽ chạy tại địa chỉ: 1:19, 1:38, 1:57, 2:19, 2:38, 2:57 vv)

lưu ý: nhiều cải tiến đã được thực hiện cho bài đăng này bởi nhiều người dùng khác nhau bao gồm cả tác giả

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