我有一个非常简单的 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 脚本没有执行权限。
使用 检查脚本文件是否具有执行权限 ( x
flag ) ll
。如果没有,则类似:
chmod 744 file
应该允许您的用户无需root即可执行它。