详解使用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中用于计算对数的log()方法
May 15 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
用Pygal绘制直方图代码示例
Dec 07 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
Python pymongo模块常用操作分析
Sep 01 Python
python实现可变变量名方法详解
Jul 01 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
基于pytorch中的Sequential用法说明
Jun 24 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
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
React 子组件向父组件传值的方法
2017/07/24 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
Django websocket原理及功能实现代码
2020/11/14 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
人事主管岗位职责说明书
2014/07/30 职场文书
创先争优宣传标语
2014/10/08 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang