Heim > System-Tutorial > LINUX > So verhindern Sie, dass Crontab -Einträge eine zufällige Löschung unter Linux durchführen

So verhindern Sie, dass Crontab -Einträge eine zufällige Löschung unter Linux durchführen

Joseph Gordon-Levitt
Freigeben: 2025-03-19 10:45:11
Original
219 Leute haben es durchsucht

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

Zufällige Löschung von Crontab -Einträgen

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.

Schritt 1: Atmen und versuchen Sie, verlorene Crontab -Einträge wiederzugewinnen

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:

  • System-Snapshots oder Backups : Wenn Sie oder Ihr Systemadministrator systemweite Sicherungen oder Schnappschüsse einrichten, ist jetzt ein guter Zeitpunkt, um diese zu überprüfen. Möglicherweise können Sie Ihre Crontab -Datei aus einer kürzlichen Sicherung wiederherstellen.
  • Editor Backups : Wenn Sie zuvor Crontab -e verwendet und den Editor ohne Speichern verlassen haben, hat der Editor möglicherweise irgendwo in Ihrem System eine temporäre Datei hinterlassen. Schauen Sie sich Ihr /TMP -Verzeichnis oder den Standardstandort des Standarddateien Ihres Editors an.
  • Forensische Tools : In extremen Fällen, und wenn die Daten von entscheidender Bedeutung sind, gibt es forensische Tools, die versuchen können, gelöschte Dateien wiederherzustellen, sofern die Daten auf der Festplatte nicht überschrieben wurden. Dies ist komplexer und nicht immer erfolgreich.

Schritt 2: Erstellen Sie eine Sicherungsroutine, um Crontab -Einträge zu sichern

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:

2.1. Handbuch Backup

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
Nach dem Login kopieren

Speichern Sie diese Sicherung an einem sicheren Ort, möglicherweise in einem Version kontrollierten Repository oder einem Cloud-Speicherdienst.

2.2. Sicherung von Crontab -Einträgen automatisch mit Cron

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
Nach dem Login kopieren

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.

2.3. Automatisiertes Sicherungsskript

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 {} \;
Nach dem Login kopieren

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:

  • #!/bin/bash: Diese Zeile sagt Ihrem Computer, dass dieses Skript mit der Bash -Shell ausgeführt werden sollte.
  • Backup_dir = "$ home/cron_backups": Diese Zeile setzt eine Variable mit dem Namen backup_dir auf einen Pfad in Ihrem Heimverzeichnis, in dem die Backups gespeichert werden. Der Pfad ist ~/cron_backups.
  • Datei_name = "crontab_backup _ $ (Datum '%y-%M-%d'). Txt": Diese Zeile legt eine Variable mit dem Namen file_name auf einen eindeutigen Namen für die Sicherungsdatei fest, die das aktuelle Datum enthält. Wenn Sie beispielsweise das Skript am 27. Februar 2024 ausführen, wäre der Dateiname crontab_backup_2024-02-27.txt.
  • Days_to_keep = 30: Gibt die Anzahl der Tage an, um Sicherungsdateien beizubehalten. In unserem Fall hält das Skript Ihre Sicherungsdateien 30 Tage lang. Nach 30 Tagen löscht es automatisch die alten Sicherungen, um Platz zu sparen.
  • MKDIR -P "$ backup_dir": Dieser Befehl erstellt das Backup -Verzeichnis, wenn es noch nicht vorhanden ist. Die Option -P stellt sicher, dass der Befehl keinen Fehler zurückgibt, wenn das Verzeichnis bereits vorhanden ist und bei Bedarf verschachtelte Verzeichnisse ermöglicht.
  • crontab -l> "$ backup_dir/$ file_name": Dieser Befehl nimmt die Ausgabe von Crontab -l (in dem alle Crontab -Einträge für den aktuellen Benutzer aufgeführt sind) und speichert sie in einer Datei im Sicherungsverzeichnis. Die Datei ist gemäß der Variablen file_name benannt.
  • Finden Sie "$ backup_dir" -name 'crontab_backup _*. txt' -typ f -mtime $ dayto_to_keep -exec rm {} \ ;: Dieser Befehl sucht nach Dateien im Backup -Verzeichnis, das mit dem Muster crontab_backup _*. Die Option -name gibt das Muster an, um Dateinamen zu entsprechen. -Type F stellt sicher, dass nur Dateien (nicht Verzeichnisse) berücksichtigt werden. löscht diese Dateien.

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Dieses Setup stellt sicher, dass Sie jeden Tag über eine neue Sicherung Ihres Crontab verfügen, die sicher in Ihrem angegebenen Verzeichnis gespeichert ist.

2.4. Versionskontrolle

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.

2.5. Systemweite Sicherungslösungen

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.

  • Linux -Backup -Werkzeuge Archiv

Zusätzliche Tipps:

  • Remote -Backups : Für kritische Systeme sollten Sie Ihr Sicherungsverzeichnis mit einem Remote -Standort oder einem Cloud -Speicherdienst synchronisieren, um vor lokalen Datenverlust zu schützen.
  • Überwachung und Warnungen : Implementieren Sie die Überwachung für die Ausführung Ihrer Backup -Cron -Jobs. Einfache E -Mail -Warnungen oder Protokollierung können Ihnen helfen, über den Status Ihrer Sicherungen informiert zu bleiben.

Schritt 3: Löschte Crontab -Einträge von Backup wiederherstellen

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

Überprüfen Sie die aufgelisteten Einträge gegen Ihr Backup, um sicherzustellen, dass der Restaurierungsprozess erfolgreich war.

Tipps zur Restaurierung:

  • Automatisierung : Wenn Sie die Backups häufig wiederherstellen müssen, sollten Sie den Wiederherstellungsprozess skriptieren, um das Fehlerpotential für Fehler zu verringern.
  • Backup -Integrität : Überprüfen Sie regelmäßig die Integrität Ihrer Sicherungen (z. B. durch manuelle Überprüfung von Sicherungsdateien), um sicherzustellen, dass sie korrekt erstellt werden und die erwarteten Daten enthalten.
  • Mehrere Sicherungen : Verwalten Sie die Sicherungen für mehrere Tage oder Wochen, abhängig von Ihrer Aktualisierungsfrequenz- und Speicherkapazität, um sicherzustellen, dass Sie bei Bedarf von verschiedenen Zeitpunkten wiederhergestellt werden können.

Schritt 4: Verhindern Sie eine versehentliche Löschung von Crontab -Einträgen

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 Login kopieren

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:

  • Melden Sie sich an und melden Sie sich wieder an : Dadurch werden Ihre Profilskripte neu geladen.
  • Quellen Sie das Profilskript : Für einen sofortigen Effekt ohne Anmeldung können Sie das Profil -Skript direkt in Ihrer aktuellen Terminalsitzung beziehen.

Wenn Sie beispielsweise den Alias ​​zu ~/.bashrc hinzugefügt haben, können Sie ausführen:

 $ source ~/.bashrc
Nach dem Login kopieren

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)
Nach dem Login kopieren

So verhindern Sie, dass Crontab -Einträge eine zufällige Löschung unter Linux durchführen

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.

Abschluss

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage