详解使用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中编写ORM框架的入门指引
Apr 29 Python
Python+matplotlib+numpy绘制精美的条形统计图
Jan 02 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
python读取Kafka实例
Dec 23 Python
详解Python实现进度条的4种方式
Jan 15 Python
在Python中通过threshold创建mask方式
Feb 19 Python
Python os模块常用方法和属性总结
Feb 20 Python
python使用openpyxl操作excel的方法步骤
May 28 Python
Python ellipsis 的用法详解
Nov 20 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 实现的将图片转换为TXT
2015/10/21 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
ext jquery 简单比较
2010/04/07 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
JavaScript的null和undefined区别示例介绍
2014/09/15 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
Python3几个常见问题的处理方法
2019/02/26 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
python自动生成证件号的方法示例
2021/01/14 Python
Skyscanner阿联酋:全球领先的旅游搜索平台
2017/11/25 全球购物
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
DTD的含义以及作用
2014/01/26 面试题
情况说明书格式范文
2014/05/06 职场文书
演讲稿的写法
2014/05/19 职场文书
小区推广策划方案
2014/06/06 职场文书
单位委托书怎么写
2014/08/02 职场文书
争先创优活动总结
2014/08/27 职场文书
2014年质量工作总结
2014/11/22 职场文书
诚信教育主题班会
2015/08/13 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书