Назад | Перейти на главную страницу

удалил файл crontab и его нужно восстановить

Я запустил crontab -r вместо crontab -e и удалил файл crontab. У меня не было резервной копии и новой для восстановления удаленного файла.

Это возможно?

Спасибо,

Питер

Попробуйте посмотреть / var / log / cron, чтобы увидеть, что было запущено, а затем попробуйте воссоздать crontab из этого. Это беспорядочно, но вы сможете восстановить все, что ранее запускалось. Однако не так уж много удачи с новыми предметами. Удачи!

Прежде всего: всегда делайте резервные копии!

Но так легко перепутать crontab -r и crontab -e. Я только что сделал это сам.

Вот что я сделал:

Вы можете попробовать посмотреть / var / log / cron и снова создать crontab.

  1. Взгляните на файл журнала
  2. Возьми первую команду и сделай grep commandname1 /var/log/cron
  3. Выясните систематичность выполнения команды
  4. Поместите эту запись в свой новый crontab
  5. выполнять cat /var/log/cron | grep -v commandname1. Это исключит уже описанную команду command1.
  6. Возьмите следующую команду и введите ее с помощью grep
  7. Выясните систематичность выполнения второй команды
  8. поместите эту запись в свой новый crontab
  9. выполнять cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. Повторяйте, пока не пройдете все команды

Теперь вы также должны выполнить команду grep для старых журналов cronlogs, чтобы найти задания, которые могут выполняться только один раз в месяц.

Скрипт для полного восстановления crontab

Я сделал 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 ...).