Haben Sie jemals diesen herzzerreißenden Moment erlebt, als Sie feststellen, dass Sie alle Ihre Crontab -Einträge versehentlich gelöscht haben? Wenn Sie mit dem Kopf nicken, sind Sie nicht allein. Ich habe diesen Fehler auch vor einiger Zeit gemacht.
Das Ausführen von Crontab -r ist versehentlich ein Fehler, der jedem passieren kann, sogar erfahrene Linux -Benutzer angesichts der Nähe der Tasten "R" und "E".
Der Befehl crontab -r, der alle Ihre geplanten Cron -Jobs beseitigt, ist versehentlich leicht zu betreiben, zumal es gefährlich nahe an Crontab -E ist, dem Befehl zum Bearbeiten dieser Einträge.
Aber mach dir keine Sorgen! In diesem Beitrag gehen wir durch, wie Sie Ihre verlorenen Crontab -Einträge wiederherstellen können, wie Sie regelmäßig Crontab -Einträge und Strategien zur Verhinderung von CRONTAB -Einträgen durch versehentliche Löschung in der Zukunft verhindern können.
Inhaltsverzeichnis
Vor einiger Zeit wollte ich Crontab -E durchführen, um meine geplanten Jobs zu bearbeiten, aber meine Finger verraten mich und haben sich stattdessen für Crontab -r entschieden. Plötzlich sind alle meine sorgfältig geplanten Cron -Jobs verschwunden.
Da die Tasten "E" und "R" auf der Tastatur nebeneinander liegen, habe ich versehentlich den Befehl crontab -r anstelle von crontab -e ausgeführt, und im Handumdrehen habe ich alle meine Crontab -Einträge verloren.
Für diejenigen, die sich wundern, entfernt der Befehl Crontab -r den Crontab des aktuellen Benutzers ohne Bestätigungsaufforderung, was zum Verlust aller geplanten Cron -Jobs führen kann.
Dieser Fehler ist leicht zu machen, insbesondere unter dem Druck eines anstrengenden Tages oder der Ablenkung des Multitasking.
So können Sie die Situation angehen und zukünftige Vorfälle verhindern.
Atmen Sie zuerst tief ein. Die Situation ist möglicherweise nicht so schlimm, wie es scheint. Während Unix- und Linux -Systeme für Crontab -R keine "Rückgängig" -Taste haben, gibt es einige Orte, an denen Sie nach einer Sicherung suchen können:
Sobald Sie Ihre Crontab -Einträge wiederhergestellt haben (oder leider, wenn Sie es nicht getan haben), ist es wichtig, eine Sicherungsroutine zu starten, um zukünftige Kopfschmerzen zu vermeiden.
Um zukünftige Verluste zu verhindern, finden Sie hier einige Strategien, um Crontab -Einträge zu sichern:
Sie sollten sich an die Gewohnheit machen, Ihre Crontab -Einträge manuell zu unterstützen, bevor Sie sie bearbeiten. Während manuelle Backups besser als nichts sind, verlassen sie sich darauf, dass Sie sich daran erinnern, sie zu tun.
Um Ihren Crontab manuell zu sichern, rennen Sie:
$ crontab -l> ~/backup_crontab.txt
Speichern Sie diese Sicherung an einem sicheren Ort, möglicherweise in einem Version kontrollierten Repository oder einem Cloud-Speicherdienst.
Die Einrichtung eines täglichen Cron -Jobs, um Ihre Crontab -Einträge automatisch zu sichern, ist eine hervorragende Möglichkeit, um sicherzustellen, dass Sie immer eine kürzlich durchgeführte Kopie Ihrer Cron -Jobs haben.
Diese Praxis verringert das Risiko eines Datenverlusts aufgrund einer zufälligen Löschung oder anderer unvorhergesehener Probleme erheblich. Hier ist ein einfaches Beispiel dafür, wie Sie einen solchen Cron -Job einrichten können:
Bearbeiten Sie Ihren Crontab mit dem Befehl crontab -e und fügen Sie eine neue Zeile hinzu, die unten zu einem bestimmten Zeitpunkt automatisch die Crontab -Einträge sichern:
0 1 * * * crontab -l>/path/to/backup/verzeichnis/crontab_backup _ $ (Datum \%y-\%m-\%d) .txt
Ersetzen Sie/Pfad/nach/backup/verzeichnis/durch Ihren eigenen Pfad.
Dieser Befehl erstellt jeden Tag um 1 Uhr morgens eine Sicherung Ihrer Crontab -Einträge, mit einem Dateinamen, der das Sicherungsdatum enthält, sodass es bei Bedarf leicht nachverfolgt und wiederhergestellt wird.
Es gibt ein Problem mit dem obigen Ansatz. Es wird jeden Tag um 1 Uhr morgens neue Dateien erstellen. Dies ist ineffizient, da das Backup -Verzeichnis auf unbestimmte Zeit wächst.
Um dies zu verhindern, können Sie in Betracht ziehen, ein Rotations- und Reinigungssystem für Ihre Backups zu implementieren. Auf diese Weise verhindern Sie, dass Ihr Backup -Verzeichnis zu groß wird, indem Sie nur eine festgelegte Anzahl von aktuellen Sicherungsdateien beibehalten.
Ich habe ein einfaches Skript erstellt, das genau das tut. Es unterstützt Ihre Crontab -Einträge in einer Datei in einem bestimmten Verzeichnis. Außerdem wird die älteren Backups nach einer Weile automatisch los.
Auf diese Weise bleibt Ihr Backup -Ordner ordentlich und füllt nicht mehr mit alten Dateien, die Sie nicht benötigen.
Erstellen Sie das Sicherungsskript :
Erstellen Sie zunächst ein Skript, das Ihre aktuellen Crontab -Einträge in einer Datei speichert. Möglicherweise möchten Sie einen Zeitstempel in den Dateinamen aufnehmen, um verschiedene Backups im Laufe der Zeit im Auge zu behalten.
Hier ist ein grundlegendes Skript -Beispiel.
Erstellen Sie beispielsweise eine Datei, beispielsweise ~/cron_backup.sh, mit dem folgenden Inhalt darin:
#!/bin/bash # Definieren Sie das Sicherungsverzeichnis und den Dateinamen Backup_dir = "$ home/cron_backups" Datei_name = "crontab_backup _ $ (Datum '%y-%M-%d'). Txt" # Anzahl der Tage, um Backups aufrechtzuerhalten Days_to_keep = 30 # Stellen Sie sicher, dass das Backup -Verzeichnis existiert Mkdir -p "$ backup_dir" # Speichern Sie die Crontab -Einträge in der Datei crontab -l> "$ backup_dir/$ file_name" # Sicherungsdateien löschen älter als die angegebene Anzahl von Tagen Finden Sie "$ backup_dir" -name 'crontab_backup _*. txt' -typ f -mtime $ DAY_TO_KAPE -EXEC RM {} \;
Dieses Skript wurde entwickelt, um Ihre Crontab -Einträge zu sichern und diese Backups zu verwalten, um zu verhindern, dass Ihr Sicherungsverzeichnis mit alten Dateien überfüllt wird.
Hier ist eine Aufschlüsselung darüber, wie dieses Skript funktioniert, Schritt für Schritt:
Durch Ausführen dieses Skripts erstellen Sie jedes Mal automatisch eine neue Sicherung Ihrer Crontab -Einträge und halten das Sicherungsverzeichnis sauber, indem Sie die Sicherungen älter als eine bestimmte Anzahl von Tagen entfernen. Dieser Ansatz hilft bei der Aufrechterhaltung einer aktuellen Geschichte von Crontab -Einträgen, ohne die Backups manuell zu verwalten.
Speichern Sie die Datei und schließen Sie sie. Und machen Sie es dann ausführbar, indem Sie ausführen:
$ chmod x ~/cron_backup.sh
Planen Sie den Sicherungsauftrag :
Planen Sie als nächstes dieses Skript so, dass Sie täglich durch Ihr Crontab ausgeführt werden. Bearbeiten Sie Ihr Crontab mit Crontab -e und fügen Sie eine neue Zeile für das Sicherungsskript hinzu. Um beispielsweise die Sicherung täglich um 1:00 Uhr zu führen, würden Sie hinzufügen:
0 1 * * */bin/bash $ home/cron_backup.sh
Dieses Setup stellt sicher, dass Sie jeden Tag über eine neue Sicherung Ihres Crontab verfügen, die sicher in Ihrem angegebenen Verzeichnis gespeichert ist.
Speichern Sie Ihre Crontab -Datei in einem Versionskontrollsystem (VCS) wie Git . Dies unterstützt nicht nur die Datei, sondern führt auch einen Vorgeschichte von Änderungen bei, sodass Sie bei Bedarf zu früheren Versionen zurückkehren können.
Stellen Sie sicher, dass Ihre Backup-Strategie Backups auf Systemebene umfasst, die den gesamten Status des Systems erfassen, einschließlich aller Benutzer-Crontabs.
Wir haben Anleitungen zu verschiedenen Backup -Tools in unserem Blog überprüft und veröffentlicht. Bitte erkunden Sie unsere Archive, um einen zu finden, der Ihren Bedürfnissen am besten entspricht.
Zusätzliche Tipps:
Wenn Sie versehentlich Crontab -r ausgeführt und Ihre Crontab -Einträge gelöscht haben, aber Sie regelmäßig wie im vorherigen Abschnitt erläutert haben, ist die Wiederherstellung Ihres Crontab unkompliziert.
So können Sie Ihre Crontab -Einträge aus der Sicherung wiederherstellen:
1. Suchen Sie Ihre neueste Sicherungsdatei :
Zunächst müssen Sie die neueste Sicherung Ihres Crontab finden. Wenn Sie der Beispiel -Sicherungsstrategie befolgt haben, befinden sich Ihre Backups in einem bestimmten Verzeichnis (z. B. $ home/cron_backups) und mit einem Datumsstempel für eine einfache Identifizierung benannt.
2. Überprüfen Sie den Backup -Inhalt :
Vor der Wiederherstellung ist es eine gute Praxis, den Inhalt der Sicherungsdatei zu überprüfen, um sicherzustellen, dass die erwarteten Crontab -Einträge enthält. Sie können einen Befehl wie Katze oder weniger verwenden, um die Datei anzuzeigen:
$ cat $ home/cron_backups/crontab_backup _ $ (Datum '%y-%M-%d'). TXT
Wenn die heutige Sicherung noch nicht erstellt wurde oder Sie von einem bestimmten Datum wiederherstellen müssen, passen Sie das Datum im Befehl entsprechend an.
3. Wiederherstellen Sie das Crontab von der Backup :
Sobald Sie die richtige Sicherungsdatei identifiziert und ihren Inhalt bestätigt haben, können Sie Ihre Crontab -Einträge wiederherstellen, indem Sie den Befehl crontab mit der Sicherungsdatei als Eingabe verwenden:
$ crontab $ home/cron_backups/crontab_backup _ $ (Datum '%y-%M-%d'). Txt
Passen Sie das Datum im Befehl erneut an die Sicherungsdatei an, die Sie zur Wiederherstellung verwenden möchten.
4. Überprüfen Sie die Restaurierung :
Nach der Wiederherstellung ist es wichtig zu überprüfen, ob Ihr Crontab korrekt wiederhergestellt wurde und alle erwarteten Einträge enthält. Verwenden Sie den Befehl crontab -l, um die aktuellen Crontab -Einträge aufzulisten:
$ crontab -l
Überprüfen Sie die aufgelisteten Einträge gegen Ihr Backup, um sicherzustellen, dass der Restaurierungsprozess erfolgreich war.
Tipps zur Restaurierung:
Lassen Sie uns schließlich darüber sprechen, wie dieser Fehler in Zukunft verhindern kann.
Das Hinzufügen eines Alias für Crontab mit der Option -i -Option in Ihrem Profilskript ist eine intelligente und effektive Möglichkeit, sich vor einer zufälligen Löschung Ihrer Crontab -Einträge zu schützen.
Die Option -i -Option für Crontab bietet eine interaktive Eingabeaufforderung, die vor dem Löschen Ihres Crontab nach Bestätigung bittet, was einen unbeabsichtigten Verlust Ihrer Cron -Jobs verhindern kann.
Einrichten des Alias:
Sie können einen Alias in Ihrem Shell -Profil erstellen, um Crontab -r mit Crontab -i zu überschreiben, was den Befehl dazu zwingt, vor dem Löschen von irgendetwas um Bestätigung zu bitten.
Fügen Sie Ihrem ~/.bashrc, ~/.bash_profile oder gleichwertig die folgende Zeile hinzu:
alias crontab = 'crontab -i' '
Nach dem Hinzufügen des Alias zu Ihrem ausgewählten Profil -Skript müssen Sie die Änderungen anwenden. Damit Änderungen erkannt werden müssen, können Sie entweder:
Wenn Sie beispielsweise den Alias zu ~/.bashrc hinzugefügt haben, können Sie ausführen:
$ source ~/.bashrc
Testen des Alias:
Um sicherzustellen, dass Ihr Alias wie erwartet funktioniert, können Sie ihn sicher testen, indem Sie versuchen, einen nicht kritischen oder vorübergehenden Crontab-Eintrag zu löschen. Wenn Sie Crontab -r ausführen, sollten Sie nun eine Eingabeaufforderung sehen, die um eine Bestätigung bittet, so etwas wie:
Crontab: Wirklich Crontab löschen? (y/n)
Diese Eingabeaufforderung ist Ihre Bestätigung, dass der Alias korrekt funktioniert und in Zukunft versehentliche Krontab -Löschungen verhindern.
Gewohnheitsmäßige Doppelprüfung :
Kultivieren Sie die Angewohnheit, den Befehl zu doppelte, bevor Sie die Eingabetaste drücken. Es mag wie eine kleine Sache erscheinen, aber es kann Ihnen viel Ärger ersparen.
Das Versand Ihrer Crontab -Einträge ist eine frustrierende Erfahrung, aber es ist nicht das Ende der Welt. Wenn Sie diese Schritte und Tipps befolgen, können Sie die versehentlich gelöschten Crontab -Einträge problemlos wiederherstellen.
Sie können dieses Missgeschick auch in Zukunft vermeiden, indem Sie die Crontab -Einträge mithilfe unseres einfachen Shell -Skripts automatisch unterstützen.
Das obige ist der detaillierte Inhalt vonSo verhindern Sie, dass Crontab -Einträge eine zufällige Löschung unter Linux durchführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!