详解使用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实现连接mongodb的方法
May 08 Python
十个Python程序员易犯的错误
Dec 15 Python
Numpy array数据的增、删、改、查实例
Jun 04 Python
Python Numpy:找到list中的np.nan值方法
Oct 30 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
python 动态调用函数实例解析
Oct 21 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
详解python常用命令行选项与环境变量
Feb 20 Python
python梯度下降算法的实现
Feb 24 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
Python3中对json格式数据的分析处理
Jan 28 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中json_encode中文编码问题分析
2011/09/13 PHP
CURL状态码列表(详细)
2013/06/27 PHP
php实现通过ftp上传文件
2015/06/19 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP strripos函数用法总结
2019/02/11 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
一个php+js实时显示时间问题
2015/10/12 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
解决select2在bootstrap modal中不能正常使用的问题
2018/08/09 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
Python中的Descriptor描述符学习教程
2016/06/02 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
大二自我鉴定
2014/01/31 职场文书
收银员岗位职责
2014/02/07 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
小学生竞选班长演讲稿
2014/04/24 职场文书
初中升旗仪式演讲稿
2014/05/08 职场文书
学习党章的体会
2014/11/07 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
行政上诉状范文
2015/05/23 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server