backup diário do banco de dados mysql no servidor ubuntu

1

Eu uso crontab -e no servidor ubuntu para executar um arquivo backup.sh todas as noites às 02:00. Eu escrevi: 00 02 * * * root /home/backup.sh Então /etc/init.d/cron restart Quando crontab -l mostra: 00 02 * * * root /home/backup.sh . Eu posso executar o backup.sh sozinho e funciona bem. Mas não funcionou automaticamente por horário.

    
por user963587 21.01.2012 / 09:49

7 respostas

5

Quando você executa seus trabalhos agendados como trabalhos do usuário (editando trabalhos com crontab -e ), não especifica o usuário. Se você executar tarefas agendadas do sistema, poderá especificar o usuário.

Coloque essa linha em /etc/crontab ou /etc/cron.d/yourfile usando algum editor como vi ou nano Ou remova 'root' antes de /home/backup.sh

Outra observação é certificar-se de que você tem todos os seus programas como mysqldump em seu script com caminhos completos ou certifique-se de que eles estejam em seus ambientes de execução de scripts PATH (que é diferente de você PATH). Veja:

man 5 crontab

EXEMPLO DE ARQUIVO CRON

EXEMPLO DO ARQUIVO DE CRONO DO SISTEMA

    
por 21.01.2012 / 10:52
4

Redirecione as mensagens de erro para um arquivo de log e verifique isso.

/home/backup.sh 2>1 /home/backup.output

É muito provável que seja um problema certo ou de caminho.

    
por 21.01.2012 / 10:00
3

Existem dois pontos sobre os quais falar:

  1. Você não precisa reiniciar o daemon do cron ao instalar uma nova tarefa cron.
  2. Os motivos mais comuns de falhas nas tarefas agendadas são privilégios / permissões do usuário e variáveis de ambiente. Então, você precisa ter certeza de que está executando o cron job sob o mesmo usuário. Além disso, tente alterar os comandos usados incluindo o caminho completo.
por 21.01.2012 / 10:01
2

Veja o que vem à minha mente:

  1. Tem certeza de que o daemon do cron está sendo executado? Verifique isso.

  2. Se for, deve-se registrar todos os trabalhos que ele executa, geralmente você pode encontrá-lo em / var / log / messages. Verifique se é realmente tenta executar este comando nesse momento.

  3. Verifique as permissões do script cron.

  4. Em caso afirmativo, o problema é provavelmente um ambiente diferente - os trabalhos em execução no cron podem ter um $ PATH diferente (por isso, é necessário especificar o caminho completo para os comandos no seu script). Cron deve enviar erro (e, na verdade, qualquer) saída de trabalhos em execução. Verifique o arquivo / var / mail / root ou configure a raiz do alias de correio - > yout @ email em / etc / aliases.

por 21.01.2012 / 10:04
1

Tente editar o crontab desta maneira:

0 2 * * * root /home/backup.sh

e certifique-se de dar permissão de execução ao script.

    
por 21.01.2012 / 09:57
1

Você não precisa da parte 'raiz'. Isso é apenas para o / etc / crontab.

Tente isso:

00 02 * * * /home/backup.sh.

    
por 26.01.2012 / 18:59
0

E certifique-se de que seu crontab tenha um retorno de carro no final da linha que deveria ser executada. Esse é um bug conhecido em muitas implementações do Cron que impede a execução da última linha do arquivo.

Melhor ainda, basta colocar um comentário na parte inferior do seu arquivo crontab com um caractere '#'.

    
por 26.01.2012 / 20:08