Cron não consegue executar o shell script

0

Eu tenho tentado fazer com que um script de shell seja executado por horas usando cron sem sucesso. Eu estou tentando ter o seguinte script bash executado a cada minuto

#!/bin/bash
PATH=/usr/local/bin/ices:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ps cax | grep 'ices' > /dev/null
if [ $? -eq 0 ]; then
  echo "Process is running."
else
  /usr/local/bin/ices /etc/ices/playlist.pls
fi

Verifica se um processo está sendo executado e, se não, o recarrega. Funciona como um executável (as permissões são definidas para 755).

Meu crontab parece

    # m h  dom mon dow   command
    */1   *    *    *    *    /etc/ices/checkIces.sh
    */1   *    *    *    *    env > /tmp/env.output

A segunda linha é para verificar se o cron irá pelo menos sair do env na pasta tmp. Alguém vê algo errado com a minha implementação atual?

    
por oneonetwo 14.01.2014 / 04:44

1 resposta

0

Basicamente, isso é um problema em obter informações suficientes para executar a depuração. Eu posso oferecer as seguintes sugestões.

O script parece bem, exceto que eu modificaria o comando PATH da seguinte forma, apenas por precaução:

   PATH=/usr/local/bin/ices:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:$PATH  

Você deve incluir esta declaração

  exec >>${0}.out 2>>${0}.out

no seu pequeno script bash. Ele redireciona toda a saída, padrão e erro, para um arquivo que tenha o mesmo nome do script, seguido por .out . Então, se o seu script é chamado my_script.sh , você encontrará todas as saídas em my_script.sh.out . Apenas certifique-se de que as permissões de escrita permitam a criação e modificação do arquivo. Você encontrará mensagens de erro, que de outra forma podem se perder.

Terceiro, tente executar o problema com o comando at , em vez de cron , por enquanto. A diferença está no meio ambiente. Se o programa rodar com at , mas falhar com cron , você saberá que precisa importar algum recurso do seu ambiente. Espero que a segunda sugestão lhe dê alguma dica.

    
por 14.01.2014 / 06:30