Primeiro, observe que o diretório atual em um crontab é seu diretório inicial. Você deve colocar o caminho completo para o script no crontab. No entanto, como o seu script está sendo executado, esse não é o problema.
O provável problema é que o seu script requer uma variável de ambiente que esteja configurada na sua sessão normal. As tarefas do Cron são executadas com um ambiente mínimo, seu .profile
não está carregado.
Em muitos sistemas, ~/.pam_environment
é lido até mesmo para tarefas agendadas. Note que este não é um script de shell, ~/.pam_environment
suporta apenas uma sintaxe restrita .
Se você não pode usar .pam_environment
, você pode ter .profile
lido explicitamente:
* * * * * . ~/.profile && ./my-script
Você não está vendo nenhum erro porque eles são emitidos dentro da janela da tela e a tela é fechada imediatamente depois. Adicione a opção -L
à sua invocação de screen
e, de preferência, uma diretiva logfile
ao seu .screenrc
, para fazer com que a tela registre a saída do rake, caso esse tipo de coisa aconteça.