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

8

Eu me apressei e esqueci o e em crontab -e antes de apertar Enter .

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

Agora, sem aviso, todo o meu crontab está vazio.

Por quê? Que lógica causou isso? Como devo fechar os prompts que não sejam Ctrl + D para que nada seja salvo?

    
por Redsandro 18.02.2016 / 17:18

2 respostas

7

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

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

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

pode ajudar contra quaisquer futuros oopsies, fornecendo uma cópia de backup dos dados do crontab (ou você pode ficar louco com o controle de versão, ou quão complexo você quiser que o backup seja).

    
por 18.02.2016 / 17:36
15

Você substituiu seu crontab por conteúdo do stdin, que estava vazio. É essencialmente igual a crontab < /dev/null .

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

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

    
por 18.02.2016 / 17:37

Tags