定时任务执行python脚本
使用linux的crontab
1.开启crontab日志。
crontab默认不开启日志,所以先开启定时任务的日志来查看
修改rsyslog服务,将
/etc/rsyslog.d/50-default.conf
文件中的#cron.*
前的#
删掉;用service rsyslog restart
重启rsyslog服务:
2.写定时任务
开启本用户的定时任务,即创建以本用户名为文件名的定时任务文件,位置在/var/spool/cron/crontabs/
。crontab -e
定时任务语句格式为:执行周期+命令,周期有5个域,分别是
- M: 分(0-59)
- H:时(0-23)
- D:天(1-31)
- m: 月(1-12)
- d: 周(0-6) //0为星期日
▲每个域不加限制任意的话用*
所以命令语句就是
1 | */5 * * * * cd /home/iris/; python aa.py |
写完后需要重启cron服务:service cron restart
如果定时运行的脚本需要root权限,那么可以直接把任务写在root用户的cron中
1 | sudo crontab -u root -e |
或者切换到root用户下再进行设置cron
1 | # 可以以root身份执行crontab,sudo默认是需要输入密码。下面是运用这个方法的具体操作方法,命令执行顺序如下: |
▲最后写完后需要重启cron服务:service cron restart
附录
常用周期格式:
每五分钟执行 */5 * * * *
每小时执行 0 * * * *
每天执行 0 0 * * *
每周执行 0 0 * * 0
每月执行 0 0 1 * *
每年执行 0 0 1 1 *
5 * * * * ls
指定每小时的第5分钟执行一次ls命令
30 5 * * * ls
指定每天的 5:30 执行ls命令
30 7 8 * * ls
指定每月8号的7:30分执行ls命令
30 5 8 6 * ls
指定每年的6月8日5:30执行ls命令
30 5 8 6 * ls
指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls
指定每星期日的6:30执行ls命令
30 3 10,20 * * ls
每月10号及20号的3:30执行ls命令
25 8-11 * * * ls
每天8-11点的第25分钟执行ls命令
*/15 * * * * ls
每15分钟执行一次ls命令
30 6 */10 * * ls
每个月中,每隔10天6:30执行一次ls命令
22 4 * * * root run-parts /etc/cron.daily
每天4:22以root身份执行/etc/cron.daily目录中的所有可执行文件,run-parts参数表示,执行后面目录中的所有可执行文件。
~/Python_project/SeverChan_Nyedu
使用python crontab设置linux定时任务
通过python 来写 crontab配置
1 | from crontab import CronTab |
python中的轻量级定时任务调度库:schedule
Author: Mrli
Link: https://nymrli.top/2018/11/07/定时执行Python脚本/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.