Um possível motivo é que você não usa caminhos absolutos para os comandos e alguns dos seus comandos não estão localizados em /usr/bin
ou /bin
que pertencem a $PATH
envvar no Cron por padrão.
Você pode descobrir onde está localizado cada executável de seus comandos pelo comando which
, por exemplo, which s3cmd
. Então você pode colocar os comandos com seus caminhos absolutos no seu script.
Outra abordagem é atribuir um novo valor para $PATH
em seu script ou em crontab
: Por que os scripts crontab não estão funcionando?
Você pode redirecionar a saída do seu Cronjob para um arquivo para depurar onde está o problema. Para este propósito, modifique seu trabalho desta maneira:
* * * * * /path/to/the-script >/path/to/log-file 2>&1
Além disso, prefiro usar $HOME
em vez de ~
nos scripts.