Tôi đã chạy crontab -r thay vì crontab -e và xóa tệp crontab của tôi. Tôi không có bản sao lưu và mới để khôi phục tập tin đã xóa.
Điều này có thể không?
Cảm ơn,
Peter
Tôi đã chạy crontab -r thay vì crontab -e và xóa tệp crontab của tôi. Tôi không có bản sao lưu và mới để khôi phục tập tin đã xóa.
Điều này có thể không?
Cảm ơn,
Peter
Câu trả lời:
Trước hết: Luôn luôn sao lưu!
Nhưng, nó rất dễ dàng để trộn lên crontab -r
và crontab -e
. Tôi chỉ làm điều này bản thân mình.
Đó là những gì tôi đã làm:
Bạn có thể thử xem / var / log / cron và xây dựng lại crontab của bạn.
grep commandname1 /var/log/cron
cat /var/log/cron | grep -v commandname1
. Điều này sẽ loại trừ lệnh1 mà bạn đã bao phủ.cat /var/log/cron | grep -v commandname1 | grep -v commandname2
Bây giờ bạn cũng nên thực hiện grep trên các cronlog cũ hơn để tìm ra các công việc có thể chỉ được chạy một lần trong một tháng.
/var/log/syslog/*
.
Tôi đã tạo một tập lệnh PHP thực hiện khôi phục hoàn toàn crontab của bạn, dựa trên nhật ký.
Nó xuất ra một thể hiện duy nhất của mỗi lệnh cron do người dùng chạy trong tuần trước.
Tôi đặt nó ở đây
https://github.com/dangreenisrael/recover_crontab
Đây là một đầu ra mẫu:
perl ~/sorttv/sorttv.pl
/usr/local/bin/flexget
bash ~/scripts/sort_sports.sh
~/scripts/play_recently_added.sh
zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
Bạn đã có tùy chọn, nhưng không có gì đặc biệt đẹp. Trong trường hợp bạn chưa nghĩ đến nó, nếu bạn có phiên bản gần đây trên máy phát triển, bạn có thể sao chép nó từ đó ... Tôi chỉ nói rằng vì tôi thường quên các bản sao có thể có trên các máy khác, vì vậy Tôi cho rằng bạn đã thử nó.
Nếu tệp của bạn được tùy chỉnh quá nhiều để đơn giản là xây dựng lại nó thực tế, bạn luôn có thể thử một số pháp y cấp thấp. Hãy thử googling cho các hướng dẫn dựa trên sleuthkit và UFS Explorer. Những người sử dụng các công cụ này tìm thấy các mức độ khác nhau về mức độ dễ sử dụng và tỷ lệ thành công, như thường lệ, YMMV.
Ugh không thể viết bình luận về câu hỏi ban đầu, nhưng một đồng nghiệp chỉ cho tôi thấy một công cụ tuyệt vời: làm cho một bí danh trong bất cứ điều gì .profile
bạn sử dụng cho crontab
được crontab -i
. Các -i
lá cờ yêu cầu xác nhận trước khi xóa.
Vì vậy, nếu bạn làm điều crontab -e
đó sẽ tiến hành chỉnh sửa như bình thường, nhưng nếu bạn vô tình làm crontab -r
bạn được chào đón với một dấu nhắc xác nhận.