今天写了一个python脚本,然后定时是每1分钟执行一次,过了好久,我突然发现定时脚本更改的数据库数据没有更改过来,当时有两个想法在我脑海中浮现:1.脚本内容写错了,2.定时任务没有执行
- 脚本内容写错了:
怎么排查那?直接在终端中执行python3 脚本,发现果然脚本内容代码报错了,然后修改过来,心想这次可以了吧,可以,过了两分钟后,发现数据库数据还是没有改过来,可以脚本没有错误了啊,没办法,只能把锅给crontab定时器了 - crontab排查:
- 先看crontab日志:cd /var/log tail -f corn 发现果然报错了
- 查看同目录下的
顿时心凉了半截 怎么那,不要慌 - 执行命令 vim /etc/postfix/main.cf
- 修改之后在终端执行: service postfix start 心想这次总算好了,但是又过了两分钟,定时任务还是不行,此时我真的好烦,没有办法,接着排查
- 执行命令 cd /var/spool/mail 然后里面是linux用户名,我用的是root
当定时任务失败时,会在root里面发送邮件,里面有为什么执行失败的原因,我赶紧 vim root查看失败原因
一看,原来是python3不在crontab执行的环境变量中,没办法,只能添加软连接(也就是添加环境变量) - 执行命令 whereis python3
然后执行: cd /usr/bin && ln -fs /usr/local/bin/python3 python3 - 最后脚本成功执行,大功告成
- 先看crontab日志:cd /var/log tail -f corn 发现果然报错了