
Eu tenho um script bash muito simples (run-build.sh):
cd /var/www/project
npm run build
Este script funciona bem quando o executo na linha de comando, mas quero executá-lo a cada 30 minutos por meio de um cron job:
*/30 * * * * /var/www/project/run-build.sh >> /var/www/test.log 2>&1
O que por algum motivo não funciona. Eu tentei várias outras abordagens, como executar o cron job como usuário root ou adicionar o caminho ao nó como parte do cron job. No entanto, ainda não consegui encontrar uma solução, por isso estou postando aqui agora.
Alguém tem alguma idéia de como fazer esse cron job funcionar?
Responder1
Atualizei meu cronjob para:
* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1
e agora funciona. Tenho certeza de que tentei isso antes, mas devo ter tentado algo diferente.
Responder2
Eu tive um problema parecido. No meu caso, o problema ocorreu porque meu script .sh não tinha permissões de execução.
Verifique se o arquivo de script possui permissão de execução ( x
flag) com ll
. Se não, algo como:
chmod 744 file
deve permitir que seu usuário o execute sem root.