Odzyskiwanie zadań cron przypadkowo usuniętych za pomocą crontab -r


64

Wszedłem crontab -rzamiast crontab -ei wszystkie moje cronzadania zostały usunięte.

Jaki jest najlepszy (lub istnieje) sposób na odzyskanie tych miejsc pracy?


30
Czy to tylko ja, czy nie ma większego sensu, aby crontab -r domyślnie pytał tak / nie?
— user1446688,

4
Myślę, że świetny pomysł to tak / nie. tym bardziej, że e & r są obok siebie ... i crontab -ejest to bardzo popularne polecenie crona.
— JustinP

4
Przez około 7 lat pracy administracyjnej nigdy mi się to nie zdarzyło. Teraz się boję. Czas zacząć regularnie tworzyć kopie zapasowe plików crontab.
— Caja

7
Zdarzyło mi się to już dwa razy. To najgorszy pomysł, jaki kiedykolwiek miałem edo edycji i rdo usunięcia bez żadnego podpowiedzi !!
— DaniG2k,

9
Pierwszą rzeczą do zrobienia, alias crontab=crontab -i. Ale crontab powinien był to zrobić domyślnie, biorąc pod uwagę, że e & r są obok siebie ...
— anishsane

Odpowiedzi:


49

crontab -r usuwa jedyny plik zawierający zadania cron.

Jeśli więc nie utworzono kopii zapasowej, jedynymi opcjami odzyskiwania są:

  • W RedHat / CentOS, jeśli twoje zadania były wcześniej uruchamiane, możesz znaleźć cron zaloguj się /var/log/cron. Plik pomoże ci ponownie przepisać zadania.
  • Inną opcją jest odzyskanie pliku za pomocą narzędzia do odzyskiwania plików. Jest to mniej prawdopodobne, że zakończy się sukcesem, ponieważ partycja systemowa jest zwykle zajęta, a odpowiednie sektory prawdopodobnie zostały już nadpisane.
  • Na Ubuntu / Debian, jeśli twoje zadanie było wcześniej uruchamiane, spróbuj grep CRON /var/log/syslog

Nie mogłem głosować, ale ta odpowiedź była dla mnie bardzo przydatna. thankx
— Teerath Kumar

1
@RajaRassani Możesz zaznaczyć, że odpowiedź jest poprawna za pomocą znacznika wyboru. Dzięki za informację zwrotną!
— SkyDan

to właśnie mi się przydarzyło :) total bummer .. Korzystam z serwerów wirtualnych i regularnie wykonuję ich kopie zapasowe .. więc zamierzam stworzyć kopię zapasową .. i pobrać usunięte crontabs
— JustinP

+1 za
— prostotę

Możesz spróbować szczęścia w poszukiwaniu kopii zapasowej wykonanej przez edytor w /tmp/crontab.wpMhKS (oczywiście nazwa może się zmienić). Może nie jest to najnowsza wersja, ale w moim przypadku bardzo pomogła
— Jong Bor

21

Jeśli nie masz /var/log/cronpliku, możesz odzyskać polecenia (ale nie czasy) z syslog.

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

możesz następnie ustalić większość czasów, sprawdzając znaczniki danych.


1
W Ubuntu plik jest /var/log/syslog.
— Aurelijus Rozenas

@ Aurelijus Rozenas Przypadkowo dodałem sys do ścieżki katalogu powinien to być / var / log / syslog, poprawiłem swój post.
— Miau

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

@Aidin, jesteś moim wybawcą! Uwaga do siebie: Nigdy nie edytuj pliku crontab, gdy przestrzeń serwera jest pełna.
— Shadoath,

1
Uff, który był blisko! Dodałem teraz crona do codziennego tworzenia kopii zapasowej mojego crontaba :)
— SidJ

-5

vi /var/spool/cron/*user*lub jeśli jesteś rootużytkownikiem, tovi /var/spool/cron/root


3
To jest gorsze. Edytuje pliki buforowania bez powiadamiania, cronże plik został edytowany. Nie zadziała również, gdy użytkownik przypadkowo go usunie, crontabponieważ nie ma pliku do edycji.
— roaima

Głosuj za mną za podanie lokalizacji crontabu. Miałem kopię zapasową całego systemu i mogłem łatwo odzyskać moje cronjobs. Dzięki!
— Cookie,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.