Posso restaurar entradas de crontab excluídas acidentalmente?

6

Eu estava tentando criar um cron no ambiente de produção e, por isso, criei o arquivo crontab.txt com meu novo comando cron e executei o arquivo crontab crontab.txt , mas em vez de anexá-lo à lista de tarefas cron existente, ele excluiu todos os crons e agora Eu só tenho meu cron no prod.

Como posso recuperar ativos anteriores que foram definidos e acrescentar meu novo cron a ele.

Obrigado.

    
por Rachel 30.09.2010 / 18:03

3 respostas

16

Seria um insulto à lesão sugerir a restauração do seu crontab a partir de backups?

    
por 30.09.2010 / 18:16
7

Primeiro de tudo: sempre faça backups!

Segundo:

Você pode tentar dar uma olhada em / var / log / cron e construir seu crontab novamente.

  1. Dê uma olhada no arquivo de log
  2. Pegue o primeiro comando e faça grep commandname1 /var/log/cron
  3. Descobrir a sistemática por trás dos horários em que o comando foi executado
  4. insira essa entrada no seu novo crontab
  5. execute cat /var/log/cron | grep -v commandname1
  6. Pegue o próximo comando e grep para ele
  7. Descobrir a sistemática por trás dos horários em que o segundo comando foi executado
  8. insira essa entrada no seu novo crontab
  9. execute cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. Repita até cobrir todos os comandos

Agora você também deve executar o grep em cronlogs mais antigos para descobrir tarefas que possam ser executadas apenas uma vez por mês.

    
por 06.04.2012 / 01:23
5

Eu fiz um script PHP que faz uma recuperação completa do seu crontab, baseado no log.

Ele gera uma única instância de cada comando cron executado pelo usuário na última semana.

Eu coloquei aqui

link

Aqui está um exemplo de saída:

perl ~/sorttv/sorttv.pl

/usr/local/bin/flexget

bash ~/scripts/sort_sports.sh

~/scripts/play_recently_added.sh

    
por 01.07.2013 / 15:21

Tags