Mein Kollege lief grep | crontab
. Danach verschwanden alle Jobs. Sieht so aus, als hätte er versucht zu rennen crontab -l
.
Was ist also passiert, nachdem der Befehl ausgeführt wurde grep | crontab
? Kann mir jemand erklären?
crontab
kann neu crontab
für den aufrufenden Benutzer (oder den erwähnten Benutzer als root
) installieren, der von STDIN liest. Das ist in Ihrem Fall passiert.
grep
Wenn Sie keine Option grep
auswählen crontab
, wird auf STDERR wie gewohnt eine Fehlermeldung generiert, und Sie leiten den STDOUT von an STDIN weiter, dessen Wert leer crontab
ist.
crontab
müssen Sie-
als Dateinamen angeben, um von der Standardeingabe lesen zu können. Ich nehme an, das liegt daran, dass zu viele Leute ihre Crontabs mit solchen Fehlern weggeblasen haben.Wie hat er den Job gekündigt? Hat er Cc oder Cd eingegeben? Wenn er Cd eingibt, entspricht dies der Ausführung,
crontab < /dev/null
und Sie haben die crontab-Datei des Benutzers durch eine leere ersetzt. Wenn Sie dagegencrontab
mit Cc töten , ist die Crontab möglicherweise erhalten geblieben. Sie können dies jedoch einfach überprüfen, indem Sie sie ausführencrontab -l
.Dieses Programm bearbeitet lediglich die Crontab-Dateien in
/var/spool/cron/
. Wenn Sie also eine Sicherungskopie des Dateisystems haben, können Sie einfach die Crontab-Datei des Benutzers von dort wiederherstellen.aktualisieren
Ich habe nicht gesehen, dass es kein Argument für das grep gibt, so dass grep einen Fehler macht und die crontab-Datei in der Tat immer weggeblasen wird.
quelle