cronjob에 의해 트리거된 bash 스크립트에서 npm 빌드를 실행하는 방법은 무엇입니까?

cronjob에 의해 트리거된 bash 스크립트에서 npm 빌드를 실행하는 방법은 무엇입니까?

매우 간단한 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

사용자가 루트 없이 실행할 수 있도록 허용해야 합니다.

관련 정보