Por que o cron não é executado automaticamente?

1

SO: Ubuntu 12.04

Agora eu quero usar Backup e Sempre que gem backup automático meu banco de dados. Quando eu conecto o servidor por ssh como um usuário adicionado para executar backup, execute -t my_backup , ele funciona bem.Mas o arquivo cron:

0 22 * * * /bin/bash -l -c 'backup perform -t my_backup'

não pode ser executado às 22:00. Quando eu uso cat / etc / crontab verifique o arquivo de configuração do cron, é:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

/ bin / bash e / bin / sh são diferentes. Qual é o motivo? Como fazer?

    
por Jingqiang Zhang 05.09.2012 / 05:12

3 respostas

1

O arquivo especial crontab / etc / crontab tem um formato ligeiramente diferente, pois o sexto campo deve ser o usuário com o qual o cron job será executado. Portanto, se você quiser colocar seu trabalho nesse arquivo, deverá inserir um nome de usuário entre * e / bin / bash para corresponder ao formato. Algo como:

0 22 * * * root /bin/bash -l -c 'backup perform -t my_backup'

substituindo root por qualquer nome de usuário que você realmente queira usar.

    
por 05.09.2012 / 05:35
1

Tente criar um script com o comando de backup que você deseja executar e, em seguida, chame isso no crontab como:

0 22 * * * (cd <absolute-path-of-directory> && ./script.sh >>script.log 2>&1)

Neste script eu recomendo antes de tudo uma linha como

#!/bin/bash
echo "'date '+%Y%m%d %H%M%S':': $0 started"

Então você pode ver que o cron está executando e se concentrando no comando. Razões pelas quais os scripts não são executados no cron e que normalmente estão sendo executados normalmente são encontrados no ambiente diferente que é usado no cron.

    
por 05.09.2012 / 08:16
0

Eu também experimentei as mesmas poucas semanas atrás. Eu estava tentando copiar e substituir o arquivo crontab. embora todos os parâmetros fossem adequados, o cron não estava sendo executado como esperado. quando eu removi e copiei o mesmo arquivo, ele estava funcionando bem .. tente o mesmo ..

no entanto eu não entendi a razão que não funcionou quando eu tentei substituir esse arquivo ..

    
por 05.09.2012 / 07:45

Tags