Я запустил crontab -r вместо crontab -e и удалил файл crontab. У меня не было резервной копии и новой для восстановления удаленного файла.
Это возможно?
Спасибо,
Питер
Попробуйте посмотреть / var / log / cron, чтобы увидеть, что было запущено, а затем попробуйте воссоздать crontab из этого. Это беспорядочно, но вы сможете восстановить все, что ранее запускалось. Однако не так уж много удачи с новыми предметами. Удачи!
Прежде всего: всегда делайте резервные копии!
Но так легко перепутать crontab -r
и crontab -e
. Я только что сделал это сам.
Вот что я сделал:
Вы можете попробовать посмотреть / var / log / cron и снова создать crontab.
grep commandname1 /var/log/cron
cat /var/log/cron | grep -v commandname1
. Это исключит уже описанную команду command1.cat /var/log/cron | grep -v commandname1 | grep -v commandname2
Теперь вы также должны выполнить команду grep для старых журналов cronlogs, чтобы найти задания, которые могут выполняться только один раз в месяц.
Я сделал 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
У вас есть варианты, но ни один из них не особенно хорош. Если вы не подумали об этом, если у вас есть последняя версия на машине разработки, вы можете скопировать ее оттуда ... Я говорю это только потому, что часто забываю о копиях, которые могут быть на других машинах, поэтому Я предполагаю, что вы это уже пробовали.
Если ваш файл слишком сильно настроен, чтобы его можно было просто восстановить, вы всегда можете попробовать низкоуровневую экспертизу. Попробуйте поискать в Google учебники, основанные на сыщик и UFS Explorer. Люди, использующие эти инструменты, обнаруживают, что степень простоты использования и процент успеха сильно различаются, как обычно, YMMV.
Ух, не могу опубликовать комментарий к исходному вопросу, но коллега только что показал мне отличный инструмент: создать псевдоним в любом .profile
вы используете для crontab
быть crontab -i
. В -i
flag запрашивает подтверждение перед удалением.
Итак, если вы это сделаете crontab -e
он продолжит редактирование как обычно, но если вы случайно сделаете crontab -r
вас встретит запрос на подтверждение.
Я так не думаю. Пришло время создать резервную копию этого важного файла (со всеми остальными в / etc / var / spool / home ...).