Có thể grep | crontab phá hủy tất cả các công việc?


21

Đồng nghiệp của tôi chạy grep | crontab. Sau đó, tất cả các công việc biến mất. Hình như anh ta đang cố chạy crontab -l.

Vậy chuyện gì đã xảy ra sau khi chạy lệnh grep | crontab? Bất cứ ai có thể giải thích?

Câu trả lời:


33

crontabcó thể cài đặt mới crontabcho người dùng gọi (hoặc người dùng được đề cập root) đang đọc từ STDIN. Đây là những gì đã xảy ra trong trường hợp của bạn.

grepkhông có bất kỳ tùy chọn nào sẽ tạo ra một thông báo lỗi trên STDERR như bình thường và bạn đang chuyển STDOUT của grepSTDIN sang trạng thái crontabtrống do đó bạn crontabsẽ biến mất.


4
Một số phiên bản crontabyêu cầu bạn sử dụng -làm tên tệp để đọc từ đầu vào tiêu chuẩn. Tôi cho rằng điều này là do quá nhiều người đã thổi bay crontabs của họ với những sai lầm như thế này.
Barmar

4

Làm thế nào anh ta chấm dứt công việc? Anh ấy đã gõ Cc hay Cd? Nếu anh ta gõ Cd, thì nó tương đương với việc chạy crontab < /dev/nullvà bạn đã thay thế tệp crontab của người dùng bằng một tệp trống. Mặt khác, nếu bạn giết crontabbằng Cc, thì crontab có thể đã được bảo tồn, nhưng bạn có thể dễ dàng kiểm tra bằng cách chạy crontab -l.

Tất cả chương trình này thực hiện là chỉnh sửa các tệp crontab /var/spool/cron/, vì vậy nếu bạn có bản sao lưu của hệ thống tệp, bạn có thể khôi phục tệp crontab của người dùng từ đó.

cập nhật

Tôi không thấy rằng không có đối số với grep, vì vậy grep sẽ báo lỗi và thực sự tệp crontab sẽ bị thổi bay luôn.


1
Bạn không cần Cc hoặc Cd, crontab sẽ biến mất
DarkHeart
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.