我需要定期为我的 django 项目执行一个 python 脚本。因此我使用 django_crontab。
crontab -e
这就是
*/1 * * * * /home/myvenv/bin/python /home/user/myproj/manage.py crontab run b74d4d1f47748498b81b5bcf863684c3 >> /home/user/myproj/myapp/file.log
该 Python 脚本应每 1 分钟将“Hello”打印到 file.log 中。
def cronSendEmail():
print("Hello")
return True
/var/log/syslog 中的日志
Jan 3 22:35:01 me CRON[24607]: (myuser) CMD (/home/myvenv/bin/python /home/user/myproj/manage.py crontab run b74d4d1f47748498b81b5bcf863684c3 >> /home/user/myproj/file.log
Jan 3 22:35:02 me CRON[24606]: (CRON) info (No MTA installed, discarding output)
每分钟都会记录一次,但不会打印“Hello”。file.log 为空。为什么“Hello”没有被打印?没有安装 MTA,丢弃输出,这是关键问题吗?
编辑:这是 django 项目,我正在通过 settings.py 中的 django-crontab 创建任务
CRONJOBS = [ ('*/1 * * * *', 'app.cronSendEmail', '>> /home/user/myproj/file.log') ]