cronjob python 脚本输出到文件

cronjob python script output to file

我 运行 CentOS 7.x 服务器中的 crontab 的简单 python 脚本。 这是代码:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
#MAILTO=root
MAILTO=my_email_address

00 15 * * * root /usr/bin/python ./home/python_devs/run_program.py >> /home/logs/Python_log_`date +\%Y-\%m-\%d_\%H\%M`.log

不幸的是,它创建了日志文件,但它是完全空白的。如果我删除 >> .... 脚本输出将发送到我在 MAILTO= 字段中定义的电子邮件地址。 那么,如何将该输出保存到日志文件中,然后通过电子邮件发送? 谢谢。

尝试这一行:

00 15 * * * /usr/bin/python /home/python_devs/run_program.py >> /home/logs/Python_log_`date +\%Y-\%m-\%d_\%H\%M`.log 2>&1

我不清楚为什么你在行首有 'root'。也许那是 Centos-ism(我一直使用基于 debian 的系统)。但我已将其删除,因为您似乎正在尝试 运行 用户文件。

通常(debian)如果你想要 root 到 运行 你把它放在 sudo crontab 上的东西。我也删除了 .在文件路径之前。

最后,2>&1 还将 stderr 重定向到您的日志中。也许早期发生了错误,因此没有任何内容写入日志,这将捕获这种情况(如果您尝试以这种方式记录文件,无论如何这是一个很好的做法)