Почему `crontab -` удаляет crontab и можно ли его отменить?


8

Я поспешил и забыл е в , crontab -eпрежде чем я ударил Enter.

Появилось приглашение, поэтому я закрыл Ctrl+ D, так же, как я обычно выхожу из ввода.

Теперь, без предупреждения, весь мой crontab пуст.

Почему? По какой логике это произошло? Как закрыть подсказки, кроме Ctrl+, Dчтобы ничего не сохранялось?


2
Что сказал подсказка?
Майкл Хэмптон

Ответы:


7

Control+Cв этом случае прервет crontabи не уничтожит текущие записи crontab. В противном случае голое -является общим признаком в Unix, что ввод следует читать со стандартного ввода, и Control+Dзакрывает стандартный ввод, что приводит к пустому файлу crontab, поскольку на стандартный ввод ничего не добавлялось.

Пользовательская запись в crontab в соответствии с

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

может помочь в борьбе с любыми такими будущими конфликтами, предоставив резервную копию данных crontab (или вы можете сойти с ума с контролем версий, или какой бы сложной ни была ваша резервная копия).


15

Вы заменили свой crontab содержимым из stdin, который был пустым. Это по сути так же, как crontab < /dev/null.

Нажатие Ctrl + C может быть лучшей привычкой.

Ваш crontab, скорее всего, ушел. Резервное копирование может быть где-то внутри /var/spool/cron, но я не знаю ни одного демона cron, который бы поддерживал резервные копии. Вы должны создать резервные копии, /var/spool/cronесли это важно для вас.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.