Stellen Sie Cron-Jobs wieder her, die versehentlich mit crontab -r entfernt wurden


64

Ich trat crontab -rstatt crontab -eund alle meine cronJobs entfernt wurden.

Was ist der beste Weg (oder gibt es einen), um diese Jobs wiederherzustellen?


30
Ist es nur ich oder macht es für crontab -r keinen Sinn, standardmäßig Ja / Nein zu fragen?
user1446688

4
Ich denke, eine Ja / Nein-Abfrage wäre eine großartige Idee. zumal e & r direkt nebeneinander liegen .. und crontab -eein wirklich gängiger cron befehl ist.
JustinP

4
In 7 oder mehr Jahren Admin-Arbeit ist mir das noch nie passiert. Jetzt habe ich Angst. Es ist Zeit, die Crontabs regelmäßig zu sichern.
Caja

7
Das ist mir schon zweimal passiert. Es ist die schlechteste Idee, die jemals zum eBearbeiten und rEntfernen ohne jegliche Aufforderung gemacht wurde !!
DaniG2k,

9
Das erste, was zu tun ist alias crontab=crontab -i. Aber Crontab sollte diese Standardeinstellung vorgenommen haben, da e & r nebeneinander liegen ...
Anishsane

Antworten:


49

crontab -r Entfernt die einzige Datei, die die Cron-Jobs enthält.

Wenn Sie also kein Backup erstellt haben, sind Ihre einzigen Wiederherstellungsoptionen:

  • Unter RedHat / CentOS finden Sie das Cron-Login, wenn Ihre Jobs zuvor ausgelöst wurden /var/log/cron. Die Datei hilft Ihnen, die Jobs erneut zu schreiben.
  • Eine andere Möglichkeit besteht darin, die Datei mit einem Dateiwiederherstellungstool wiederherzustellen. Dies ist jedoch weniger wahrscheinlich, da die Systempartition normalerweise ausgelastet ist und die entsprechenden Sektoren wahrscheinlich bereits überschrieben wurden.
  • Wenn Ihre Aufgabe unter Ubuntu / Debian bereits ausgeführt wurde, versuchen Sie es grep CRON /var/log/syslog

Ich konnte dich nicht wählen, aber diese Antwort war ein bisschen nützlich für mich. Thankx
Teerath Kumar

1
@RajaRassani Sie können die richtige Antwort jedoch mit einem Häkchen markieren. Danke für die Rückmeldung!
SkyDan

das ist mir gerade passiert :) total blöd .. ich benutze virtuelle server und sichere sie regelmäßig..so werde ich eine sicherung
hochfahren

+1 für die einfache
Bedienung

Sie können Ihr Glück versuchen und nach einem Backup suchen, das vom Editor in /tmp/crontab.wpMhKS erstellt wurde (der Name kann sich natürlich ändern). Es ist vielleicht nicht die neueste Version, aber in meinem Fall hat es sehr geholfen
Jong Bor

21

Wenn Sie keine /var/log/cronDatei haben, können Sie die Befehle (aber nicht die Timings) von der wiederherstellen syslog.

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

Sie können dann die meisten Timings herausfinden, indem Sie sich die Datenstempel ansehen.


1
Auf Ubuntu ist die Datei /var/log/syslog.
Aurelijus Rozenas

@ Aurelijus Rozenas Ich habe versehentlich sys zum Verzeichnispfad hinzugefügt, der / var / log / syslog sein sollte. Ich habe meinen Beitrag korrigiert.
Meow

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

@Aidin du bist mein Retter! Hinweis für sich selbst: Bearbeiten Sie die crontab-Datei niemals, wenn der Server voll ist.
Shadoath

1
Puh das war knapp! Ich habe jetzt ein Cron hinzugefügt, um mein Crontab jeden
Tag

-5

vi /var/spool/cron/*user*oder wenn Sie der rootBenutzer dann sindvi /var/spool/cron/root


3
Das ist schlimmer. Die Spooldateien werden bearbeitet, ohne crondass Sie darüber informiert werden, dass die Datei bearbeitet wurde. Es funktioniert auch nicht, wenn der Benutzer versehentlich seine gelöscht hat, crontabda keine zu bearbeitende Datei vorhanden ist.
Roaima

Ich habe mich dafür ausgesprochen, dass ich die Position der Crontab angegeben habe. Ich hatte eine vollständige Systemsicherung und konnte meine Cronjobs leicht abrufen. Vielen Dank!
Cookie
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.