首先列出要用到的几个目录,文件和解析器:
/usr/local/bin/python3 :python3程序的目录
/home :存放要执行的脚本目录
/var/log/cron :crontab的日志文件
/var/spool/cron/root :crontab的任务文件
/etc/cron-hourly :crontab间隔执行任务的目录(把脚本放在这个目录即可定时执行)
#!/usr/local/bin/python3 :py3的解析器目录
#!/bin/bash :shell的解析器目录
#!/usr/bin/env python3 :指定程序命令
#!/bin/env python3 :同上
注意:/usr/bin/env是指向/bin/env的,我们也可以在首行使用#!/bin/env python3
第一、在home目录下存放名字为smtp的sh脚本和py脚本,通过sh脚本调用py脚本
smtp:
#!/bin/bash /usr/local/bin/python3 /home/smtp.py
smtp.py:
参考代码:http://tp0.top/index.php/article/page/id/207.html
第二、输入命令crontab -e进入任务区,添加* * * * * /home/smtp 意思是每分钟执行一次
smtp脚本,保存,并确保crontab服务是启动状态,或者输入service crond restart
第三、查看cron实时日志,可以看到每分钟执行了一次smtp脚本,并且邮箱也正常收到邮件
知识点总结:
1、linux中的独立脚本首行要标明解析器路径
(例如#!/usr/local/bin/python3,#!/bin/bash;
或者#!/bin/env python3;#!/bin/env sh)如果没有设置软连接或者安装目录不是/usr/bin的
尽量写真实路径
#!/usr/local/bin/python3
2、sh中要使用/usr/local/bin/python3 /home/smtp.py这种绝对路径执行
#!/bin/bash /usr/bin/usr/local/bin/python3 /home/smtp.py
3、可以在crontab -e中使用/home/smtp.py定时执行py脚本,前提是首行
为#!/usr/local/bin/python3,或者在/usr/bin中有软连接指向真实目录;
也可以直接写/usr/local/bin/python
即:
* * * * * /home/smtp.py * * * * * /usr/local/bin/python3 /home/smtp.py
4、要执行的文件的权限要设置成可执行,例如chmod 700 smtp.py;chmod 700 smtp
来自ansion博客
2016年11月20日