美文网首页
定时执行python脚本

定时执行python脚本

作者: yytester | 来源:发表于2020-06-02 09:47 被阅读0次

crontab -e:写入定时任务

10 8 * * * 表示每天早上8点10执行此命令.
后面的python3路径和脚本路径要写绝对路径.
并且指定日志输出文件.

10 8 * * * /usr/bin/python3 /home/gsky/ebank/everydayTaskGetTtkn2.py >/home/gsky/ebank/everyday.txt 2>&1 &

crontab -i: 显示用户定时任务

修改定时任务之后要重启: service cron restart


/var/log下没有cron日志

  1. 修改rsyslog: sudo vim /etc/rsyslog.d/50-default.conf
    cron.* /var/log/cron.log #将cron前面的注释符去掉

  2. 重启rsyslog
    sudo service rsyslog restart

  3. 查看crontab日志
    less /var/log/cron.log


执行任务不成功,提示No MTA installed, discarding output

解决方案: 指定日志输出文件
(gsky) CMD (/usr/bin/python3 /home/xxx/xxx/everydayTaskGetTtkn2.py >/home/xxx/xxx/everyday.txt 2>&1 &


提示找不到python的第三方库

解决方案:因为我的第三方库是个人用户下载的, 而cron默认是root用户执行, 在root用户下找不到这些第三方库.
需要在个人用户下执行命令crontab -e来新建定时任务 ,而不是sudo crontab -e


cron执行时提示某个命令not found

例如在cron定时执行的python脚本里, 有一句os.system("hrun %s" % './main.json')
如果日志文件里,提示sh:1: hrun: not found , 而手动执行可以成功, 则是cron的环境变量配置问题.
首先查看服务器httprunner框架装在哪里: which httprunner ,如果输出/usr/local/bin/httprunner,则在crontab里最上方加入环境变量即可:
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

相关文章

网友评论

      本文标题:定时执行python脚本

      本文链接:https://www.haomeiwen.com/subject/dvbyzhtx.html