crontab não está funcionando corretamente

0

Quando executo um script manualmente usando o root, ele está funcionando bem. quando eu executo o mesmo script dentro do cron ele não está rodando. Eu verifiquei o cron está realmente chamando o script, mas o script não está em execução. Eu exportei a saída de echos no script para o arquivo de texto, mas o arquivo de texto não registrou nada. Por favor, verifique este cron

*/10 * * * *  sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt
    
por user1597811 14.02.2013 / 12:34

2 respostas

2

A entrada cron só está correta se você estiver usando crontab -e para adicioná-la. Se você adicioná-lo diretamente ao / etc / crontab você precisa incluir o nome de usuário para executá-lo.

O cron deve fazer spool para / var / spool / cron / se for criado com sucesso.

Verifique as permissões de script, chmod + x.

É uma boa prática incluir o caminho completo para o shell, / bin / sh, ou apenas excluí-lo completamente.

* / 10 * * * * / bin / sh /var/www/sym_monitor/restart.sh > /var/www/migrate/root_restart.txt

Além disso, você está incluindo a linha shebang no script? Deve começar com #! / Bin / sh ou #! / Bin / bash

    
por 14.02.2013 / 20:43
1

Tente adicionar o seguinte ao final da sua linha de crontab:

 2> /var/www/migrate/error.log.txt

Agora, para algumas conjeturas (você pode ter adicionado o script à pergunta, se não for muito longo):

Verifique no seu script para ver se você tem uma linha que define a variável PATH para a mesma coisa que você tem quando faz:

 echo $PATH

Lembre-se de que as coisas iniciadas no cron não executam nenhum dos arquivos de inicialização do shell que acontecem quando você faz o login.

Tem certeza de que o arquivo tem pelo menos a permissão READ .... um script de shell precisa de mais do que a simples permissão EXECUTE. Você pode ter incluído um ls do arquivo também.

    
por 14.02.2013 / 20:32