Pode grep | crontab destruir todos os trabalhos?

21

Meu colega executou grep | crontab . Depois disso, todos os trabalhos desapareceram. Parece que ele estava tentando executar crontab -l .

Então, o que aconteceu depois de executar o comando grep | crontab ? Alguém pode explicar?

    
por user129224 19.08.2015 / 01:39

2 respostas

33

crontab pode instalar o novo crontab para o usuário solicitante (ou o usuário mencionado como root ) lendo a partir de STDIN. Isso é o que aconteceu no seu caso.

grep sem nenhuma opção gerará uma mensagem de erro no STDERR como de costume e você está colocando o STDOUT de grep em STDIN de crontab , que está em branco, portanto, seu crontab será eliminado.

    
por 19.08.2015 / 01:51
4

Como ele terminou o trabalho? Ele digitou C-c ou C-d? Se ele digitou C-d, então é equivalente a executar crontab < /dev/null e você substituiu o arquivo crontab do usuário por um vazio. Por outro lado, se você matar crontab com C-c, então o crontab pode ter sido preservado, mas você pode facilmente verificar isso executando crontab -l .

Tudo o que este programa faz é editar os arquivos crontab em /var/spool/cron/ , então se você tiver um backup do sistema de arquivos, você pode simplesmente restaurar o arquivo crontab do usuário de lá.

atualizar

Eu não vi que não havia nenhum argumento para o grep, então o grep irá errar e de fato o arquivo crontab será surpreendido sempre.

    
por 19.08.2015 / 01:46

Tags