Por que o `crontab -` remove o crontab e pode ser cancelado?

8

Corri e esqueceu o e em crontab -eantes de eu bater Enter.

Um prompt apareceu, então fechei com Ctrl+ D, o mesmo que normalmente saio dos prompts de entrada.

Agora, sem aviso, meu crontab inteiro está vazio.

Por quê? Que lógica fez isso acontecer? Como devo fechar prompts diferentes de Ctrl+ Dpara que nada seja salvo?

Redsandro
fonte
2
O que o prompt disse?
Michael Hampton

Respostas:

7

Control+Cneste caso, abortará crontabe não apagará as entradas atuais do crontab. Caso contrário, o bare -é uma indicação comum no Unix de que a entrada deve ser lida a partir da entrada padrão e Control+Dfecha a entrada padrão, resultando no arquivo crontab vazio, pois nada foi canalizado na entrada padrão.

Uma entrada de usuário crontab ao longo das linhas de

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

pode ajudar contra tais oopsies futuros, fornecendo uma cópia de backup dos dados do crontab (ou você pode optar pelo controle de versão ou por mais complexo que queira que o backup seja).

agitar
fonte
15

Você substituiu seu crontab pelo conteúdo de stdin, que estava vazio. É essencialmente o mesmo que crontab < /dev/null.

Pressionar Ctrl + C pode ser um hábito melhor.

Seu crontab provavelmente desapareceu. O backup pode estar em algum lugar /var/spool/cron, mas não conheço nenhum daemon cron que mantenha os backups. Você deve configurar backups /var/spool/cronse isso for importante para você.

rvs
fonte