2011-12-20 37 views
32

Tôi đang cố gắng thêm một dòng vào crontab trên Ubuntu.Phụ thêm vào crontab bằng tập lệnh shell trên Ubuntu

Hiện tại, tôi đang làm crontab -e và chỉnh sửa crontab tại đó.

Tuy nhiên, dường như tôi không thể tìm thấy tệp crontab thực, vì crontab -e dường như cung cấp cho bạn một bản sao làm việc tạm thời.

/etc/crontab trông giống như hệ thống crontab.

Đường dẫn của crontab mà crontab -e lưu là gì?

Cảm ơn!

+0

https://stackoverflow.com/questions/610839/how-can-i-programmatically-create-a-new-cron-job – dskrvk

+0

Có thể trùng lặp của [Làm thế nào tôi có thể lập trình tạo một công việc cron mới?] (https://stackoverflow.com/questions/610839/how-can -i-lập trình-tạo-a-new-cron-job) –

Trả lời

22

Sử dụng crontab -l > file để liệt kê crontab hiện tại của người dùng vào filecrontab file, để cài đặt crontab mới.

1

Tệp crontab người dùng nằm trong '/ var/spool/cron/crontabs' cho ubuntu.

[email protected]:~$ sudo ls -lh /var/spool/cron/crontabs/adyliu 
-rw------- 1 adyliu crontab 1.2K 2012-03-01 09:33 /var/spool/cron/crontabs/adyliu 

'adyliu' là người dùng đăng nhập của bạn.

Bạn cần đặc quyền gốc để xem tệp này.

Sử dụng "crontab -e" có thể là cách tốt nhất để sửa đổi tập lệnh cron.

Trong hướng dẫn:

Người dùng không được phép chỉnh sửa các tập tin dưới thư mục trực tiếp để đảm bảo rằng chỉ những người dùng được cho phép bởi hệ thống để chạy các nhiệm vụ tuần hoàn có thể thêm chúng, và chỉ đúng cú pháp crontabs sẽ là được viết ở đó.

79

Bạn cũng có thể làm điều đó mà không có một tập tin tạm thời:

(crontab -l ; echo "0 4 * * * myscript")| crontab - 
+0

ước gì tôi đã xem cái này trước. tốt đẹp. – mdandr

+2

'crontab -' nghĩa là gì? – Noumenon

+3

'crontab -' có nghĩa là thay thế crontab bằng đầu vào tiêu chuẩn. – Duvrai

11

Nếu crontab của bạn là trống rỗng, bạn nên sử dụng 2>/dev/null:

(crontab -l 2>/dev/null; echo "0 4 * * * myscript")| crontab - 
+0

Hãy thận trọng vì làm theo cách này' 2>/dev/null' có thể không cho bạn biết về bất kỳ lỗi, tôi sẽ cá nhân thay vì nhìn thấy một lỗi một lần hơn để bỏ qua tất cả các lỗi mãi mãi – Ordiel

+0

@Ordiel Có thực sự bất kỳ lỗi nào khác bạn có thể nhận được từ 'crontab -l'? – Noumenon

+0

Trong hành vi điển hình của vỏ, đường ống đã bỏ qua tiêu bản: do đó không chạm vào tiêu bản, thông báo lỗi sẽ vẫn không kết thúc trong crontab. Ví dụ: nếu bạn muốn * stderr trong đường ống, trong Bash bạn sẽ thêm dấu '&' sau đường ống: | & – Rondo

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