Ich beeilte mich und vergaß das E- In, crontab -e
bevor ich traf Enter.
Eine Eingabeaufforderung wurde angezeigt, sodass ich mit Ctrl+ schloss D, genau wie ich normalerweise Eingabeaufforderungen beende.
Jetzt ist meine gesamte Crontab ohne Vorwarnung leer.
Warum? Welche Logik hat dies verursacht? Wie soll ich andere Eingabeaufforderungen als Ctrl+ schließen, Ddamit nichts gespeichert wird?
Antworten:
Control+Cwird in diesem Fall
crontab
die aktuellen crontab-Einträge abbrechen und nicht löschen. Andernfalls ist das Bare-
unter Unix ein häufiger Hinweis darauf, dass Eingaben von der Standardeingabe gelesen werden sollten, und Control+Dschließt die Standardeingabe, was zur leeren crontab-Datei führt, da bei der Standardeingabe nichts eingespeist wurde.Ein Benutzer-Crontab-Eintrag nach dem Vorbild von
kann gegen solche zukünftigen Probleme helfen, indem Sie eine Sicherungskopie der Crontab-Daten bereitstellen (oder Sie können die Versionskontrolle in den Griff bekommen oder wie komplex die Sicherung sein soll).
quelle
Sie haben Ihre Crontab durch Inhalt von stdin ersetzt, der leer war. Es ist im Wesentlichen das gleiche wie
crontab < /dev/null
.Das Drücken von Strg + C ist möglicherweise eine bessere Angewohnheit.
Ihre Crontab ist höchstwahrscheinlich weg. Backup könnte irgendwo drin sein
/var/spool/cron
, aber ich kenne keinen Cron-Daemon, der Backups verwaltet. Sie sollten Backups einrichten,/var/spool/cron
wenn dies für Sie wichtig ist.quelle