Recupere tarefas cron removidas acidentalmente com crontab -r


64

Entrei em crontab -rvez de crontab -ee todos os meus crontrabalhos foram removidos.

Qual é a melhor maneira (ou existe) de recuperar esses trabalhos?


30
Sou eu ou não faria mais sentido o crontab -r perguntar sim / não por padrão?
user1446688

4
Eu acho que ter uma solicitação sim / não seria uma ótima idéia. especialmente porque e & r estão próximos um do outro .. e crontab -eé um comando cron muito comum.
11117 JustinP

4
Em 7 anos ou mais de trabalho administrativo, nunca aconteceu isso comigo. Agora estou com medo. Hora de começar a fazer backup dos crontabs regularmente.
Caja

7
Isso já aconteceu comigo duas vezes. É a pior idéia que já tive epara editar e rremover sem absolutamente nenhum aviso !!
DaniG2k

9
Primeira coisa a fazer alias crontab=crontab -i. Mas crontab deve ter feito esse padrão, dado que e & r estão ao lado do outro ...
anishsane

Respostas:


49

crontab -r remove o único arquivo que contém os trabalhos cron.

Portanto, se você não fez um backup, suas únicas opções de recuperação são:

  • No RedHat / CentOS, se seus trabalhos foram acionados antes, você pode encontrar o cron login /var/log/cron. O arquivo ajudará você a reescrever os trabalhos novamente.
  • Outra opção é recuperar o arquivo usando uma ferramenta de recuperação de arquivos. Porém, é menos provável que isso seja bem-sucedido, pois a partição do sistema geralmente é ocupada e os setores correspondentes provavelmente já foram substituídos.
  • No Ubuntu / Debian, se sua tarefa já foi executada antes, tente grep CRON /var/log/syslog

Não pude votar em você, mas essa resposta foi útil para mim. thankx
Teerath Kumar

1
@RajaRassani Você pode marcar a resposta correta com uma marca de seleção. Obrigado pelo feedback!
SkyDan

isso acabou de acontecer comigo :) Que chatice total .. Eu uso servidores virtuais e os faço backup regularmente .. então eu vou girar um backup .. e obter os crontabs excluídos # #
JustinP JustinP

+1 por ser simples:}
namezero 13/04

Você pode tentar a sorte procurando um backup feito pelo editor em /tmp/crontab.wpMhKS (é claro que o nome pode mudar). Pode não ser a versão mais recente, mas no meu caso ajudou muito
Jong Bor

21

Se você não possui um /var/log/cronarquivo, pode recuperar os comandos (mas não os tempos) a partir do syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

você pode descobrir a maioria dos horários observando os carimbos de data.


1
No ubuntu, o arquivo é /var/log/syslog.
Aurelijus Rozenas 29/11

@ Aurelijus Rozenas acidentalmente adicionei sys ao caminho do diretório que deveria ser / var / log / syslog, corrigi minha postagem.
Meow

2
grep 'CRON.*(yourusername)' /var/log/syslog
Aidan

@Aidin você é meu salvador! Nota para si mesmo: nunca edite o arquivo crontab enquanto o espaço do servidor estiver cheio.
Shadoath 06/02

1
Ufa que estava perto! Agora adicionei um cron para fazer backup do meu crontab todos os dias :)
SidJ

-5

vi /var/spool/cron/*user*ou se você é o rootusuário entãovi /var/spool/cron/root


3
Isso é pior. Ele edita os arquivos de spool sem notificar cronque o arquivo foi editado. Também não funcionará quando o usuário tiver excluído acidentalmente a sua crontabporque não há arquivo para editar.
roaima

Voto positivo de mim por realmente indicar a localização do crontab. Eu tinha um backup completo do sistema e podia recuperar facilmente meus cronjobs. Obrigado!
Cookie
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.