Pourquoi `crontab -` supprime-t-il crontab et peut-il être annulé?


8

Je me suis précipité et oublié le e en crontab -eavant de toucher Enter.

Une invite est apparue, j'ai donc fermé avec Ctrl+ D, comme je quitte habituellement les invites de saisie.

Maintenant, sans avertissement, mon crontab entier est vide.

Pourquoi? Quelle logique a provoqué cela? Comment fermer les invites autres que Ctrl+ Dpour que rien ne soit enregistré?


2
Qu'a dit l'invite?
Michael Hampton

Réponses:


7

Control+Cdans ce cas, abandonnera crontabet n'effacera pas les entrées crontab actuelles. Sinon, le bare -est une indication courante sur Unix que l'entrée doit être lue à partir de l'entrée standard et Control+Dferme l'entrée standard, ce qui entraîne le fichier crontab vide, car rien n'a été injecté sur l'entrée standard.

Une entrée utilisateur crontab le long des lignes de

@daily crontab -l > $HOME/.cron.`hostname`

peut aider contre de telles futures oopsies en fournissant une copie de sauvegarde des données crontab (ou vous pouvez vous déchaîner avec le contrôle de version, ou quelle que soit la complexité de la sauvegarde).


15

Vous avez remplacé votre crontab par le contenu de stdin, qui était vide. C'est essentiellement la même chose que crontab < /dev/null.

Appuyer sur Ctrl + C pourrait être une meilleure habitude.

Votre crontab est probablement parti. La sauvegarde pourrait être quelque part /var/spool/cron, mais je ne connais aucun démon cron qui gère les sauvegardes. Vous devez configurer des sauvegardes /var/spool/cronsi cela est important pour vous.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.