详解使用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数据库操作常用功能使用详解(创建表/插入数据/获取数据)
Dec 06 Python
如何将python中的List转化成dictionary
Aug 15 Python
python中数据爬虫requests库使用方法详解
Feb 11 Python
利用python实现微信头像加红色数字功能
Mar 26 Python
django DRF图片路径问题的解决方法
Sep 10 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
Python3实现的判断环形链表算法示例
Mar 07 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
python3.9之你应该知道的新特性详解
Apr 29 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
php表单敏感字符过滤类
2014/12/08 PHP
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
javascript innerHTML使用分析
2010/12/03 Javascript
基于jquery的跟随屏幕滚动代码
2012/07/24 Javascript
js运动动画的八个知识点
2015/03/12 Javascript
JQuery EasyUI的使用
2016/02/24 Javascript
jQuery使用ajax跨域获取数据的简单实例
2016/05/18 Javascript
js实现带简单弹性运动的导航条
2017/02/22 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
基于vue cli 通过命令行传参实现多环境配置
2018/07/12 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
2019/08/07 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
[02:17]DOTA2亚洲邀请赛 RAVE战队出场宣传片
2015/02/07 DOTA
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
Python的print用法示例
2014/02/11 Python
详解Django框架中的视图级缓存
2015/07/23 Python
Python实现定时任务
2017/02/08 Python
Python使用arrow库优雅地处理时间数据详解
2017/10/10 Python
python 求一个列表中所有元素的乘积实例
2019/06/11 Python
python继承threading.Thread实现有返回值的子类实例
2020/05/02 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
python中的列表和元组区别分析
2020/12/30 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
La Redoute英国官网:法国时尚品牌
2017/04/27 全球购物
教师自荐书
2013/10/08 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
门店业绩提升方案
2014/06/08 职场文书
咖啡店创业计划书
2014/08/15 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
mysql timestamp比较查询遇到的坑及解决
2021/11/27 MySQL
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python