2011-09-06 26 views
21

Tôi đang cố gắng viết một công việc cron trên máy Mac OS X của mình sẽ chạy kịch bản Ruby lúc 12:20 sáng hàng ngày.Làm cách nào để tạo một công việc cron sẽ chạy hàng ngày lúc 12:20 sáng?

Đây là những gì tôi cần phải chạy nhưng tôi không biết cú pháp hoặc các lệnh để sử dụng trên máy Mac:

/usr/bin/ruby /Users/tamer/scripts/sftp.rb 

Tôi đọc về làm crontab -e nhưng tôi cần phải làm điều gì đó sau đó?

Trả lời

39

Các crontab cho "hàng ngày tại 00:20" là

20 0 * * * 

Điểm mấu toàn trong crontab sau đó sẽ là

20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb 
11

Mục crontab sẽ giống như thế:

20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb 

Điều này giả định rằng bạn không cần bất kỳ biến môi trường nào khác để làm cho nó hoạt động. Nếu bạn cần các biến khác, sau đó tạo một kịch bản shell cài đặt môi trường, sau đó thực thi chương trình và tập lệnh Ruby.

Trình công việc, tôi thường sử dụng:

crontab -l > x3 
echo "20 0 * * * /usr/bin/ruby /Users/tamer/scripts/sftp.rb" >> x3 
crontab < x3 
rm x3 
+1

bạn sẽ không chỉ sử dụng '-e' crontab để chỉnh sửa các tập tin cấu hình crontab (tại chỗ của việc sử dụng các tập tin tạm thời x3)? – snowbound

+1

@snowbound: Có thể, nhưng chỉ khi tôi biết/nhớ tùy chọn ở đó và nếu tôi muốn chỉnh sửa tương tác. Nếu tôi đã viết kịch bản, ngoài việc sử dụng tên tệp tạm thời tốt hơn (ví dụ: từ 'mktemp'), tôi có thể làm như được hiển thị. Hoặc, vì tôi thường giữ mục nhập 'crontab' của tôi trong điều khiển nguồn, tôi sẽ chỉnh sửa phiên bản chính của tệp và gửi lại sau khi kiểm tra thay đổi. –

+0

cách tiếp cận của bạn cũng có lợi thế là có thể được gọi là lập trình bởi một kịch bản khác: D – snowbound

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