
매우 간단한 bash 스크립트(run-build.sh)가 있습니다.
cd /var/www/project
npm run build
이 스크립트는 명령줄에서 실행할 때 제대로 작동하지만 cron 작업을 통해 30분마다 실행하고 싶습니다.
*/30 * * * * /var/www/project/run-build.sh >> /var/www/test.log 2>&1
어떤 이유로 작동하지 않습니다. 루트 사용자로 cron 작업을 실행하거나 cron 작업의 일부로 노드에 경로를 추가하는 등 다양한 접근 방식을 시도했습니다. 하지만 아직 해결책을 찾지 못해서 여기에 글을 올립니다.
이 cron 작업을 작동시키는 방법에 대한 아이디어가 있는 사람이 있습니까?
답변1
내 cronjob을 다음과 같이 업데이트했습니다.
* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1
이제 작동합니다. 전에도 시도해 봤지만 뭔가 다른 것을 시도한 게 틀림없어요.
답변2
비슷한 문제가있었습니다. 제 경우에는 .sh 스크립트에 실행 권한이 없기 때문에 문제가 발생했습니다.
로 스크립트 파일에 실행 권한( x
플래그) 이 있는지 확인하세요 ll
. 그렇지 않은 경우 다음과 같습니다.
chmod 744 file
사용자가 루트 없이 실행할 수 있도록 허용해야 합니다.