基本操作下面这篇:
centos定时任务-不起作用- 没指明路径!!!
最大的问题是路径问题,以及权限问题。
用定时任务执行某些脚本是出现一系列问题,一步一步解决.
问题一:定时任务没反应:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE0MjIwMTkwMC0xNjQwODg4OTk2LnBuZw==.png)
查看日志看看。
问题二:postfix报错postfix: fatal: parameter inet_interfaces: no local interface found for ::1
解决: 注意权限root 或者sudo
vi /etc/postfix/main.cf 发现配置为:
inet_interfaces = localhost inet_protocols = all
改成:
inet_interfaces = all inet_protocols = all
重新启动 service postfix start OK!
问题三:你会收到邮件了:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE0MjQwOTI4NC0xNTY4MjQ4MzI5LnBuZw==.png)
查看邮件吧
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE1MjUyOTQxMC0xNzUxNDU1Mzc3LnBuZw==.png)
下面这个邮件就会告诉你发生的错误:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE0Mzk1NTU5MC00OTcyOTEwNDUucG5n.png)
下面的是成功执行了定时任务的:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE0Mjc0MDQxMy0xMTEyOTMxNDUxLnBuZw==.png)
我的一些问题:
我在一个test.py中:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE0Mjk1ODE3My0xOTc1ODQ1MTk5LnBuZw==.png)
刚开始我只写入文件到 "logs.txt"中,二通过邮件可以看到发送成功了,且输出了finish,然而,却没有写入文件,于是,我猜测他的执行路径问题了,应为
我写入文件给的是相对路径,所以我加了一个绝对地址,然后 成功了!!!
定时任务执行的命令并不是在你的.py文件所在目录,所以,无论是调用相同文件夹下的文件还是写文件读文件,都要保证能找到该路径,所以一般有两种处理方法:
1.写成绝对路径;
如上图
2.在执行命令前,先进入到指定文件夹下,在执行命令,如下:
![](https://www.codeprj.com/image/aHR0cHM6Ly9pbWcyMDE4LmNuYmxvZ3MuY29tL2Jsb2cvMTE2OTAxOC8yMDE5MDEvMTE2OTAxOC0yMDE5MDExODE1MTcwNDI2MC0xMTI4NDY0NzE3LnBuZw==.png)
注意,这相当与是同时执行了两个命令,先执行: cd /home/yusogn/py/notice
然后执行: python /home/yusong/py/notice/test.py
所以注意:这两个命令之间要用 && 连接起来
|