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日志
修改rsyslog:
sudo vim /etc/rsyslog.d/50-default.conf
cron.* /var/log/cron.log
#将cron前面的注释符去掉重启rsyslog
sudo service rsyslog restart
查看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