详解使用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实现对一个完整url进行分割的方法
Apr 29 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
Python创建xml文件示例
Mar 22 Python
python 实现批量xls文件转csv文件的方法
Oct 23 Python
Python读取excel指定列生成指定sql脚本的方法
Nov 28 Python
python+opencv实现摄像头调用的方法
Jun 22 Python
Python 分享10个PyCharm技巧
Jul 13 Python
Django用户认证系统 Web请求中的认证解析
Aug 02 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
python3读取autocad图形文件.py实例
Jun 05 Python
使用tensorflow根据输入更改tensor shape
Jun 23 Python
基于Python爬取素材网站音频文件
Oct 21 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中mt_rand()随机数的安全
2017/10/12 PHP
php 后端实现JWT认证方法示例
2018/09/04 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
2020/12/16 PHP
popdiv
2006/07/14 Javascript
JQuery实现自定义对话框的代码
2008/06/15 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
Jquery实现鼠标移上弹出提示框、移出消失思路及代码
2013/05/19 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
jQuery基于ajax实现星星评论代码
2015/08/07 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
使用Ajax生成的Excel文件并下载的实例
2016/11/21 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
2019/04/25 HTML / CSS
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
设计师珠宝:Ylang 23
2018/05/11 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
SQL Server面试题
2016/10/17 面试题
网络工程师的自我评价
2013/10/02 职场文书
新教师培训心得体会
2014/09/02 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
军事博物馆观后感
2015/06/05 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
学校就业保障协议书
2019/06/24 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python