频道栏目
首页 > 资讯 > Linux > 正文

教你使用Linux的crontab来实现定时执行python任务

18-07-27        来源:[db:作者]  
收藏   我要投稿

让Python脚本定时启动

准备好定时启动的脚本auto.py

用root权限编辑以下文件

sudo vim /etc/crontab

在文件末尾添加以下命令

 * * * * root /usr/bin/python3.5 /home/edgar/auto.py > /home/edgar/auto.log

以上代码的意思是每隔两分钟执行一次脚本并打印日志。 (python3.5的路径和文件路径必须是绝对路径)

crontab编写解释

基本格式

user command

分 时 日 月 周 用户 命令

举例说明

1、每分钟执行一次

* * * * * user command

2、每隔2小时执行一次

* */2 * * * user command (/表示频率)

3、每天8:30分执行一次

30 8 * * * user command

4、每小时的30和50分各执行一次

30,50 * * * * user command(,表示并列)

5、每个月的3号到6号的8:30执行一次

30 8 3-6 * * user command (-表示范围)

6、每个星期一的8:30执行一次

30 8 * * 1 user command (周的范围为0-7,0和7代表周日)

crontab命令

service crond start #启动

service crond stop #关闭

service crond restart #重启

service crond reload #重新载入配置

crontab -e 命令添加定时任务

crontab -l 查看定时任务

检查crontab 任务执行情况,可以查看log 文件 /var/log/cron

也可以使用python-crontab包来设置

如:

安装直接

$ pip install python-crontab

下面在脚本上就可以方便的设置计划任务了

from crontab import CronTab

# 创建当前用户的crontab,当然也可以创建其他用户的,但得有足够权限

my_user_cron = CronTab(user=True)

# 创建任务

job = my_user_cron.new(command='/usr/bin/python3.5 /home/edgar/auto.py')

# 设置任务执行周期,每两分钟执行一次

job.setall('*/2 * * * *')

# 当然还支持其他更人性化的设置方式,简单列举一些

job.minute.during(5,50).every(5)

job.hour.every(4)

job.day.on(4, 5, 6)

job.dow.on('SUN')

job.dow.on('SUN', 'FRI')

job.month.during('APR', 'NOV')

job.setall(time(10, 2))

job.setall(date(2000, 4, 2))

job.setall(datetime(2000, 4, 2, 10, 2))

# 同时可以给任务设置comment,这样就可以根据comment查询,很方便

job.set_comment("time log job")

# 根据comment查询,当时返回值是一个生成器对象,不能直接根据返回值判断任务是否#存在,如果只是判断任务是否存在,可直接遍历my_user_cron.crons

iter = my_user_cron.find_comment('time log job')

# 同时还支持根据command和执行周期查找,基本类似,不再列举

# 任务的disable和enable, 默认enable

job.enable(False)

job.enable()

# 最后将crontab写入配置文件

my_user_cron.write()

下面可通过命令查看,是否创建成功:

$ crontab -l

相关TAG标签
上一篇:SQL建表语句代码分享
下一篇:Linux中使用 Nexus3.x 搭建 Maven 私服的操作教程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站