Я запустив crontab -r замість crontab -e і видалив файл crontab. У мене не було резервної копії та нового для відновлення видаленого файлу.
Чи можливо це?
Спасибі,
Петро
Я запустив crontab -r замість crontab -e і видалив файл crontab. У мене не було резервної копії та нового для відновлення видаленого файлу.
Чи можливо це?
Спасибі,
Петро
Відповіді:
Насамперед: Завжди робіть резервні копії!
Але, це так легко перемішати crontab -r
і crontab -e
. Я просто робив це сам.
Ось що я зробив:
Ви можете спробувати переглянути / var / log / cron і створити свій crontab заново.
grep commandname1 /var/log/cron
cat /var/log/cron | grep -v commandname1
. Це виключить команду1, яку ви вже охопили.cat /var/log/cron | grep -v commandname1 | grep -v commandname2
Тепер ви також повинні виконати греп на старих хронологах, щоб з’ясувати завдання, які можуть виконуватися лише раз на місяць.
/var/log/syslog/*
.
Я створив PHP-скрипт, який повністю відновить ваш crontab на основі журналу.
Він видає один екземпляр кожної команди cron, яку виконує користувач за останній тиждень.
Я поклав це сюди
https://github.com/dangreenisrael/recover_crontab
Ось зразок виводу:
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
У вас є варіанти, але жоден не особливо гарний. Якщо ви про це не думали, якщо у вас на останній версії на розроблювальній машині ви можете скопіювати її звідти ... Я це кажу лише тому, що я часто забуваю про копії, які можуть бути на інших машинах, Я припускаю, що ви вже пробували це.
Якщо ваш файл занадто сильно налаштований, щоб зробити його простою реконструкцією практично, ви завжди можете спробувати деякі криміналістики низького рівня. Спробуйте googling для навчальних посібників на основі sleuthkit та UFS Explorer. Люди, що використовують ці інструменти, знаходять дуже різну ступінь щодо простоти використання та рівня успішності, так як зазвичай, YMMV.
Уф не може залишити коментар на оригінальний питання, але колега тільки що показав мені великий інструмент: зробити псевдонім в будь-якому .profile
ви використовуєте для crontab
бути crontab -i
. -i
Прапор запитує підтвердження перед видаленням.
Отже, якщо ви crontab -e
це зробите , перейдіть до редагування, як зазвичай, але якщо ви випадково зробите, crontab -r
вас вітають із запитом підтвердження.