如何从 cronjob 触发的 bash 脚本运行 npm build?

如何从 cronjob 触发的 bash 脚本运行 npm build?

我有一个非常简单的 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

出于某种原因,它不起作用。我尝试了其他各种方法,例如以 root 用户身份运行 cron 作业或将节点路径添加到 cron 作业中。但是我还没有找到解决方案,这就是我现在在这里发帖的原因。

有人知道如何让这个 cron 作业工作吗?

答案1

我将我的 cronjob 更新为:

* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1

现在它起作用了。我确信我以前尝试过,但我肯定尝试过其他方法。

答案2

我遇到了类似的问题。就我而言,问题是由于我的 .sh 脚本没有执行权限。

使用 检查脚本文件是否具有执行权限 ( xflag ) ll。如果没有,则类似:

chmod 744 file

应该允许您的用户无需root即可执行它。

相关内容