详解使用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安装后pip不能用的问题
Jun 12 Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
django中使用POST方法获取POST数据
Aug 20 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
Django CSRF认证的几种解决方案
Mar 03 Python
python读取mysql数据绘制条形图
Mar 25 Python
Python如何使用input函数获取输入
Aug 06 Python
python 绘制国旗的示例
Sep 27 Python
python数据库批量插入数据的实现(executemany的使用)
Apr 30 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模板引擎SMARTY
2006/10/09 PHP
漂亮但不安全的CTB
2006/10/09 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
基于php split()函数的用法详解
2013/06/05 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
jQuery DOM操作小结与实例
2010/01/07 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
python 布尔操作实现代码
2013/03/23 Python
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
python logging通过json文件配置的步骤
2020/04/27 Python
乌克兰在线药房:Аптека24
2019/10/30 全球购物
2014年基层党组织公开承诺书
2014/03/29 职场文书
外国人聘用意向书
2014/04/01 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
语文高效课堂实施方案
2014/05/03 职场文书
推荐信格式范文
2014/05/09 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
道歉信怎么写
2015/05/12 职场文书
2016廉洁从政心得体会
2016/01/19 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS