【发布时间】:2021-01-31 02:51:59
【问题描述】:
我运行的 Debian 10 系统具有以下名为“update.sh”的 shell 文件:
#!/bin/bash
cd home/user/djangoprojet
source /env/bin/activate
python manage.py update
我运行一个 root 用户并设置“chmod +x update.sh”。
当我运行“home/user/djangoprojet/update.sh”时,执行脚本可以完美运行。
我现在使用“crontab -e”每分钟运行一次脚本:
* * * * * home/user/djangoprojet/update.sh > testcron.log
但是,脚本没有被执行。当我运行“grep CRON /var/log/syslog”时,我得到以下结果,这表明 crontab 运行:
1 月 30 日 15:08:01 vServer CRON[22036]: (root) CMD > (home/user/djangoprojet/update.sh > testcron.log) 1 月 30 日 15:08:01 vServer CRON[22035]:(CRON)信息(未安装 MTA,丢弃输出)
位于根目录中的“testcron.log”文件是空的 - 尽管脚本在运行时会生成输出。
在 StackExchange 上的某个地方我也发现执行此命令
/bin/sh -c "(export PATH=/usr/bin:/bin; home/user/djangoprojet/update.sh </dev/null)"
效果很好。
如何正确配置 crontab 以便我的脚本运行?谢谢!
【问题讨论】: