Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

Запись в crontab пользователя по строкам

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

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