详解使用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连接mysql并提交mysql事务示例
Mar 05 Python
python操作摄像头截图实现远程监控的例子
Mar 25 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 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
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JS编程小常识很有用
2012/11/26 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
document.getElementBy("id")与$("#id")有什么区别
2013/09/22 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
js 两数组去除重复数值的实例
2017/12/06 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
JS面试题大坑之隐式类型转换实例代码
2018/10/14 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
[00:56]PWL开团时刻DAY8——追追追追追!
2020/11/09 DOTA
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python3.5运算符操作实例详解
2019/04/25 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
如何用Matplotlib 画三维图的示例代码
2020/07/28 Python
Pycharm调试程序技巧小结
2020/08/08 Python
想学画画?python满足你!
2020/12/24 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
奥巴马演讲稿
2014/01/08 职场文书
客服部工作职责范本
2014/02/14 职场文书
英文自荐信常用句子
2014/03/26 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
民事诉讼答辩状范文
2015/05/21 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书