Tại sao `crontab -` loại bỏ crontab, và nó có thể bị hủy không?


8

Tôi vội vã và quên ecrontab -etrước khi tôi nhấn Enter.

Một dấu nhắc xuất hiện, vì vậy tôi đã đóng bằng Ctrl+ D, giống như tôi thường thoát các lời nhắc nhập.

Bây giờ, không có cảnh báo, toàn bộ crontab của tôi trống rỗng.

Tại sao? Logic gì đã gây ra điều này xảy ra? Làm thế nào tôi nên đóng lời nhắc khác ngoài Ctrl+ Dđể không có gì được lưu?


2
Lời nhắc đã nói gì?
Michael Hampton

Câu trả lời:


7

Control+Ctrong trường hợp này sẽ hủy bỏ crontabvà không xóa sạch các mục crontab hiện tại. Mặt khác, trần -là một dấu hiệu phổ biến trên Unix rằng đầu vào phải được đọc từ đầu vào tiêu chuẩn và Control+Dđóng đầu vào tiêu chuẩn, dẫn đến tệp crontab trống, vì không có gì được đưa vào đầu vào tiêu chuẩn.

Một mục nhập crontab của người dùng dọc theo dòng

@daily crontab -l > $HOME/.cron.`hostname`

có thể giúp chống lại bất kỳ sự oái oăm nào trong tương lai bằng cách cung cấp một bản sao lưu dữ liệu crontab (hoặc bạn có thể phát điên với kiểm soát phiên bản, hoặc tuy nhiên bạn muốn sao lưu phức tạp).


15

Bạn đã thay thế crontab của bạn với nội dung từ stdin, trống rỗng. Nó là cơ bản giống như crontab < /dev/null.

Nhấn Ctrl + C có thể là một thói quen tốt hơn.

Crontab của bạn rất có thể đã biến mất. Sao lưu có thể ở đâu đó trong /var/spool/cron, nhưng tôi không biết bất kỳ trình nền cron nào duy trì sao lưu. Bạn nên thiết lập sao lưu /var/spool/cronnếu nó quan trọng đối với bạn.

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.