Executei o crontab -r em vez de crontab -e e excluí meu arquivo crontab. Eu não tinha um backup e novo para recuperar o arquivo excluído.
Isso é possível?
Obrigado,
Pedro
Executei o crontab -r em vez de crontab -e e excluí meu arquivo crontab. Eu não tinha um backup e novo para recuperar o arquivo excluído.
Isso é possível?
Obrigado,
Pedro
Respostas:
Primeiro de tudo: sempre faça backups!
Mas, é tão fácil de misturar crontab -r
e crontab -e
. Eu mesmo fiz isso.
Isso é o que eu fiz:
Você pode tentar dar uma olhada em / var / log / cron e criar seu crontab novamente.
grep commandname1 /var/log/cron
cat /var/log/cron | grep -v commandname1
. Isso excluirá o comando1 que você já cobriu.cat /var/log/cron | grep -v commandname1 | grep -v commandname2
Agora você também deve executar o grep em cronlogs antigos para descobrir trabalhos que podem ser executados apenas uma vez por mês.
/var/log/syslog/*
.
Eu criei um script PHP que faz uma recuperação completa do seu crontab, com base no log.
Ele gera uma única instância de cada comando cron executado pelo usuário na última semana.
Eu coloquei aqui
https://github.com/dangreenisrael/recover_crontab
Aqui está uma amostra de saída:
perl ~/sorttv/sorttv.pl
/usr/local/bin/flexget
bash ~/scripts/sort_sports.sh
~/scripts/play_recently_added.sh
zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
Você tem opções, mas nenhuma é particularmente bonita. Caso você não tenha pensado nisso, se você tem uma versão recente em uma máquina de desenvolvimento, pode copiá-la de lá ... Só digo isso porque geralmente esqueço cópias que podem estar em outras máquinas, então Presumo que você já tenha tentado isso.
Se o seu arquivo for muito pesado para simplificar sua reconstrução, você sempre poderá tentar análises forenses de baixo nível. Tente pesquisar no Google os tutoriais baseados no sleuthkit e no UFS Explorer. As pessoas que usam essas ferramentas encontram graus bastante variados em termos de facilidade de uso e taxas de sucesso, assim como sempre, YMMV.
Ugh não pode postar um comentário sobre a questão original, mas um colega de trabalho me mostrou uma grande ferramenta: fazer um alias em qualquer .profile
que você usa para crontab
ser crontab -i
. A -i
bandeira pede confirmação antes de excluir.
Portanto, se você fizer crontab -e
isso, continuará editando como de costume, mas se você acidentalmente crontab -r
for recebido com um prompt de confirmação.