我有一个非常简单的 bash 脚本(run-build.sh):
cd /var/www/project
npm run build
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行该脚本时,它运行良好,但我想通过 cron 作业每 30 分钟运行一次:
*/30 * * * * /var/www/project/run-build.sh >> /var/www/test.log 2>&1
Run Code Online (Sandbox Code Playgroud)
由于某种原因,这不起作用。我尝试了各种其他方法,例如以 root 用户身份运行 cron 作业或将节点的路径添加为 cron 作业的一部分。但是,我还没有设法找到解决方案,这就是我现在在这里发帖的原因。
任何人都知道如何让这个 cron 工作正常工作?
我将我的 cronjob 更新为:
* */12 * * * sudo -u user /var/www/project/run-build.sh >> /var/www/test.log 2>&1
Run Code Online (Sandbox Code Playgroud)
现在可以了。我确信我以前尝试过,但我一定尝试过不同的东西。
小智 0
我有类似的问题。就我而言,问题是由于我的 .sh 脚本没有执行权限。
检查脚本文件是否具有执行权限(x标志)ll。如果没有,类似:
chmod 744 file
Run Code Online (Sandbox Code Playgroud)
应该允许您的用户无需 root 即可执行它。