crontab não pode encontrar script

1

Eu tenho um cron job que é executado sob meu usuário uma vez por noite. Eu instalei usando crontab -e e adicionando a linha:

0   1   *   *   *     /home/username/diskreport.sh

O crontab está configurado para me enviar o resultado por e-mail. Aparentemente aleatoriamente eu recebo um email do Cron Daemon informando que o script não foi encontrado (oposto à saída de diskreport.sh).

/bin/sh: 1: /home/username/diskreport.sh: not found

Eu tive um erro no início do script que corrigi, mas não estava impedindo o script de ser executado. Ele corre bem sob sh e bash:

#~/bin/bash
    
por Pete 14.03.2014 / 16:00

3 respostas

1

Acontece que isso estava relacionado a ecryptfs e ter um diretório pessoal criptografado. O comportamento "aparentemente aleatório" foi desencadeado por ter uma sessão SSH ativa com o meu usuário logado. Enquanto logado, o cron era capaz de ler meu diretório pessoal porque ele foi montado e descriptografado. Enquanto desconectado, o script não está disponível. Obrigado por todas as sugestões úteis.

    
por 20.03.2014 / 17:15
0

todos os scripts de shell devem começar com a linha seguinte #!/bin/bash (substitua bash w / qualquer shell que você esteja usando

    
por 14.03.2014 / 16:04
0

Faça:

 whereis sh

obtenha o caminho mais curto, por ex. /bin/sh e altere seu trabalho de crontab para:

0   1   *   *   *    /bin/sh    /home/username/diskreport.sh
    
por 14.03.2014 / 16:28