详解使用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利用QQ邮箱发送邮件的实现方法(分享)
Jun 09 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
Python实现的多叉树寻找最短路径算法示例
Jul 30 Python
Python函数参数操作详解
Aug 03 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
Python中的 enum 模块源码详析
Jan 09 Python
Python实现序列化及csv文件读取
Jan 19 Python
keras读取训练好的模型参数并把参数赋值给其它模型详解
Jun 15 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python如何写个俄罗斯方块
Nov 06 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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使用数组依次替换字符串中匹配项
2016/01/08 PHP
php 读取输出其他文件的实现方法
2016/07/26 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
javascript截取字符串(通过substring实现并支持中英文混合)
2013/06/24 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
Bootstrap每天必学之折叠(Collapse)插件
2016/04/25 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
JSONP和批量操作功能的实现方法
2016/08/21 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
2019/02/13 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
Python多线程实例教程
2014/09/06 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
使用python Fabric动态修改远程机器hosts的方法
2018/10/26 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
pycharm通过ssh连接远程服务器教程
2020/02/12 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python selenium使用autoIT上传附件过程详解
2020/05/26 Python
Python如何测试stdout输出
2020/08/10 Python
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
软件测试面试题
2014/01/05 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
应届毕业生求职信范文
2013/12/18 职场文书
公司年终奖分配方案
2014/06/16 职场文书
纪检干部个人对照检查材料
2014/09/23 职场文书
劳模先进事迹材料
2014/12/24 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers