Відновіть завдання cron, аварійно видалені crontab -r


64

Я crontab -rзамість цього ввійшов, crontab -eі всі мої cronроботи видалено.

Який найкращий спосіб (чи є такий) відновити ці робочі місця?


30
Це тільки я чи не було б більше сенсу для crontab -r запитувати так / ні за замовчуванням ??
користувач1446688

4
Я думаю, що запрошення "так / ні" було б чудовою ідеєю. тим більше, що e & r знаходяться поруч один з одним .. і crontab -eце дійсно звичайна команда cron.
JustinP

4
За 7 або більше років роботи адміністратора у мене ніколи цього не сталося. Зараз мені страшно. Час почати регулярно створювати резервні копії.
Каджа

7
Це траплялося зі мною вже двічі. Це найгірша ідея, яка коли-небудь потрібна eдля редагування та rвидалення з абсолютно жодним підказом !!
DaniG2k

9
Перше , що потрібно зробити, alias crontab=crontab -i. Але Crontab повинен був зробити це за замовчуванням, враховуючи, що e & r знаходяться поруч ...
anishsane

Відповіді:


49

crontab -r видаляє єдиний файл, що містить завдання cron.

Тож якщо ви не зробили резервну копію, ваші єдині варіанти відновлення:

  • У RedHat / CentOS, якщо ваші завдання вже були запущені, ви можете знайти вхід у систему /var/log/cron. Цей файл допоможе вам знову написати завдання.
  • Інший варіант - відновити файл за допомогою інструмента відновлення файлів. Це, швидше за все, буде успішним, оскільки системний розділ, як правило, зайнятий, і відповідні сектори, ймовірно, вже були перезаписані.
  • У Ubuntu / Debian, якщо ваша задача виконувалася раніше, спробуйте grep CRON /var/log/syslog

Я не міг вас проголосувати, але ця відповідь була якоюсь корисною для мене. Thankx
Teerath Кумар

1
@RajaRassani Ви можете відзначити правильну відповідь за допомогою галочки. Дякуємо за відгук!
SkyDan

це щойно трапилося зі мною :) загальний об’єм .. Я використовую віртуальні сервери та регулярно
створюю їх

+1 за те, що він прямолінійний:}
namezero

Ви можете спробувати удачу, шукаючи резервну копію, зроблену редактором у /tmp/crontab.wpMhKS (звичайно, назва може змінитися). Це може бути не остання версія, але в моєму випадку вона дуже допомогла
Ченг Бор

21

Якщо у вас немає /var/log/cronфайлу, ви можете відновити команди (але не таймінги) з syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

Ви можете визначити більшість термінів, переглянувши позначки дати.


1
У ubuntu файл є /var/log/syslog.
Aurelijus Rozenas

@ Aurelijus Rozenas Я випадково додав sys до каталогу, яким він повинен бути / var / log / syslog, я виправив свою публікацію.
М'яв

2
grep 'CRON.*(yourusername)' /var/log/syslog
помічник

@Aidin ти мій рятівник! Примітка до самостійної роботи: Ніколи не редагуйте файл crontab, поки серверне місце заповнене.
Shadoath

1
Фу, що було близько! Зараз я додав cron для резервного копіювання мого crontab щодня :)
SidJ

-5

vi /var/spool/cron/*user*або якщо ви rootтоді користувачvi /var/spool/cron/root


3
Це гірше. Він редагує файли котушки, не повідомляючи, cronщо файл відредагований. Він також не буде працювати, коли користувач випадково видалив їх, crontabоскільки немає файлу для редагування.
roaima

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