Як відновити видалений crontab


11

Я намагався редагувати crontab в терміналі, і я випадково набрав crontab -rзамість crontab -e. Хто подумає, що така небезпечна команда буде сидіти прямо біля листа, щоб відредагувати кронтаб? Більше того, я все ще намагаюся розібратися, як crontab -rне просить у вас підтвердження?

Незалежно від моєї недостатньої довіри до того, як це можливо, моє питання: чи я можу відновити втрачений кронтаб?


Щойно для інформації, crontab -r видалить crontab без підказки, а crontab -i попросить підтвердження.
Раман Сайлопал

@RamanSailopal дякую за інформацію. що насправді небезпечно, враховуючи той факт, що -e і -r знаходяться поруч (принаймні, на qwerty) ...
Мігель Мескіта Альфайат

1
Такі речі є однією з причин, чому я використовую etckeeper.
Девід Фоерстер

2
Відновіть його із резервної копії
PiedPiper

@PiedPiper Якби у мене було резервне копіювання, це не було б проблемою. У мене є резервні копії домашніх папок, але це не кореневий crontab.
Мігель Мескіта Альфайат

Відповіді:


7

Ви можете знайти свої завдання cron з журналу, якщо один раз він виконаний раніше. Перевірити /var/log/cron.

У вас немає жодного варіанту відновлення, окрім інструментів відновлення сторонніх виробників.


Будь-які підказки про те, як я можу перевірити, я щось не пропускаю? Що робити, якщо було якесь щотижневе чи щомісячне завдання? Чи довелося б мені йти по черзі до початку минулого місяця, щоб дізнатися, чи є у мене менш поширений загін?
Мігель Мескіта Альфаяте

Я думаю, вам доведеться їхати по черзі за останній місяць. Вибачте
Мухаммед Шефрі

Не потрібно "рядок за рядком". Використовуйте grepабо з / -oабо з трубопроводу в sed/ awk/ cut/ і т.д., щоб витягти лише команду, а потім скопійовані в sort -u.
Патрік

3
Вам потрібно буде йти по черзі, щоб опрацювати графіки, якщо вони не просто щодня або щотижня. Щось подібне awk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8покаже записи, usernameвідсортовані за командою, що повинно полегшити перегляд інтервалів між ними, щоб ви могли відтворити їхні графіки.
James Sneeringer

@JamesSneeringer - це безумовно чаклунство! великі пальці за це!
Мігель Мескіта Альфайат

2

Я не впевнений, можна відновити crontabфайл без резервного копіювання. Але я впевнений, що ви можете відновити свій crontabфайл із cronжурналів. Наскільки я пам’ятаю, швидко кожна команда перерахована там з користувачем.


2

Якщо ви пам’ятаєте певний рядок, ви можете перехопити весь пристрій, щоб знайти ваші дані, за умови, що жодні інші дані не перезаписують його. Це працює для будь-якого файлу.

grep -a -B100 -A100 "command/you remember" /dev/sda1 > /tmp/cron.ressurected

Відрегулюйте -B (efore) та -A (fter) до розміру вашого файлу, але для створення файлів cron має бути достатньо 100 рядків. Параметр -a необхідний, щоб змусити grep розглядати ваш пристрій як текст.

Тоді вам доведеться очистити двійковий безлад до і після своїх даних у отриманому файлі.

І це займає багато часу. Удачі.

Ви також можете посилатися на цю відповідь: Видалити / відновити видалені файли | Обмін стеками Unix та Linux

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.