详解使用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中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python的randrange()方法使用教程
May 15 Python
python中解析json格式文件的方法示例
May 03 Python
Python绑定方法与非绑定方法详解
Aug 18 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 Python
Python开启线程,在函数中开线程的实例
Feb 22 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
django框架面向对象ORM模型继承用法实例分析
Jul 29 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python实现简易淘宝购物
Nov 22 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中文汉字验证码
2007/04/08 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
php中Ctype函数用法详解
2014/12/09 PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
2015/07/10 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
PHP利用超级全局变量$_GET来接收表单数据的实例
2016/11/05 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
js面向对象编程总结
2017/02/16 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[19:54]夜魇凡尔赛茶话会 第一期02:看图识人
2021/03/11 DOTA
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
python实现手机销售管理系统
2019/03/19 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Python request操作步骤及代码实例
2020/04/13 Python
Python json格式化打印实现过程解析
2020/07/21 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
考试诚信承诺书
2014/05/23 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
房贷收入证明范本
2015/06/12 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
利用Apache Common将java对象池化的问题
2022/06/16 Servers