Existe alguma razão para este cronjob falhar no cron, mas não na linha de comando?

0

Eu escrevi um pequeno forro que me enviará um email quando uma lista de arquivos for alterada - usei o sha512 para gerar uma lista de hashes e verificar periodicamente se esses hashes ainda correspondem.

*/5     *   *   *   *   /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" [email protected]

Funciona bem na linha de comando com:

/usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" [email protected]

Assim que eu executo como um cronjob, ele e-mails toda vez que ele é executado com a mensagem de falha, em vez de apenas quando a verificação do sha512sum falhar.

Há algo de bobo que eu tenha perdido em uma corrida?

Esqueci de mencionar que estou executando uma máquina Ubuntu.

    
por Treffynnon 22.08.2014 / 12:14

2 respostas

1

Depois de juntar o forro e remover os aspectos de notificação, descobri que preciso mover para o diretório correto antes de executar o comando sha512sum .

Então, agora é assim:

*/5     *   *   *   *   cd /var/www; /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" [email protected]

Os caminhos de arquivo em sha512.sumlist são relativos, portanto, o comando precisa ser executado na pasta que contém os arquivos a serem verificados. No meu caso, isso é simplesmente /var/www .

    
por 22.08.2014 / 12:53
0

Acho que você esqueceu de especificar usuário, como root .

*/5     *   *   *   *   root    /usr/bin/sha512sum --status -c /sha512.sumlist && echo "Success" > /dev/null || echo "Check robots.txt and index.html in /var/www as staging sites are now potentially exposed to the world and the damned googlebot" | /usr/bin/mail -s "Default staging server files have changed" [email protected]
    
por 22.08.2014 / 12:16