详解使用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循环语句
Nov 20 Python
python和shell获取文本内容的方法
Jun 05 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
python使用turtle库绘制树
Jun 25 Python
python日志logging模块使用方法分析
May 23 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
Python测试Kafka集群(pykafka)实例
Dec 23 Python
Pytorch之保存读取模型实例
Dec 30 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
利用Python将图片中扭曲矩形的复原
Sep 07 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编程实现获取excel文档内容的代码实例
2011/06/28 PHP
关于php循环跳出的问题
2013/07/01 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2018/08/30 Javascript
使用JavaScript破解web
2018/09/28 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
2019/12/23 jQuery
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
django轻松使用富文本编辑器CKEditor的方法
2017/03/30 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Python3.x爬虫下载网页图片的实例讲解
2018/05/22 Python
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
Numpy之random函数使用学习
2019/01/29 Python
HTML的form表单和django的form表单
2019/07/25 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
行政办公室岗位职责
2014/03/18 职场文书
求职自荐信的格式
2014/04/07 职场文书
五分钟演讲稿
2014/04/30 职场文书
保护环境标语
2014/06/09 职场文书
2014年班务工作总结
2014/12/02 职场文书
2015年助残日活动总结
2015/03/27 职场文书
安全教育第一课观后感
2015/06/17 职场文书