详解使用python crontab设置linux定时任务


Posted in Python onDecember 08, 2016

熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。

但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得想办法解决,不然在程序猿界混(一群自得其乐的猿)。

下面进入正题,开始想通过以写文件的形式设置,通过在配置文件中直接追加一行即可。但是读写文件难免有点繁琐,再比如:设置任务时要检查任务是否已经存在;根据输入参数设置相应的任务等。以读写文件难免不太合适。所以想到了“万能”的大python。

当当当,今天的主角上场:python-crontab模块。安装直接

$ pip install python-crontab

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

from crontab import CronTab

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

my_user_cron = CronTab(user=True)

# 创建任务

job = my_user_cron.new(command='echo date >> ~/time.log')

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

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

 很方便吧,还有一些功能没有完全介绍,大家可以参考官方文档https://pypi.python.org/pypi/python-crontab

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 Python
python中list循环语句用法实例
Nov 10 Python
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
Dec 25 Python
实用自动化运维Python脚本分享
Jun 04 Python
python+selenium 点击单选框-radio的实现方法
Sep 03 Python
Python 图像对比度增强的几种方法(小结)
Sep 25 Python
python scrapy重复执行实现代码详解
Dec 28 Python
pytorch 彩色图像转灰度图像实例
Jan 13 Python
如何在sublime编辑器中安装python
May 20 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
Python 正则表达式入门(中级篇)
Dec 07 #Python
Python 正则表达式入门(初级篇)
Dec 07 #Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 #Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 #Python
Python深入06——python的内存管理详解
Dec 07 #Python
Python制作钉钉加密/解密工具
Dec 07 #Python
详解Python 数据库 (sqlite3)应用
Dec 07 #Python
You might like
PHP+SQL 注入攻击的技术实现以及预防办法
2010/12/29 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP实现的购物车类实例
2015/06/17 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
js实现拖拽效果
2015/02/12 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
关于验证码在IE中不刷新的快速解决方法
2016/09/23 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
JavaScript函数柯里化实现原理及过程
2020/12/02 Javascript
[48:52]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第一局
2016/02/25 DOTA
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
连接Python程序与MySQL的教程
2015/04/29 Python
Python字符编码判断方法分析
2016/07/01 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
Python笔试面试题小结
2019/09/07 Python
Python sublime安装及配置过程详解
2020/06/29 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
学生请假条
2014/04/11 职场文书
企业晚会策划方案
2014/05/29 职场文书
设备售后服务承诺书
2014/05/30 职场文书
环保宣传语大全
2015/07/13 职场文书
自荐信大全
2019/03/21 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android