详解使用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中使用item()方法遍历字典的例子
Aug 26 Python
Python标准库之多进程(multiprocessing包)介绍
Nov 25 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
python贪婪匹配以及多行匹配的实例讲解
Apr 19 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
python使用多进程的实例详解
Sep 19 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
python Django中models进行模糊查询的示例
Jul 18 Python
详解python中的模块及包导入
Aug 30 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
Python 图片添加美颜效果
Apr 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 执行系统命令的方法
2009/07/07 PHP
PHP常见的序列化与反序列化操作实例分析
2019/10/28 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
2015/02/20 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
JQuery实现级联下拉框效果实例讲解
2015/09/17 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
JSONP跨域请求
2017/03/02 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
详解node child_process模块学习笔记
2018/01/24 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
零基础学Python(一)Python环境安装
2014/08/20 Python
深入理解python try异常处理机制
2016/06/01 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
幼儿如何来做好自我评价
2013/11/05 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
假面舞会策划方案
2014/05/29 职场文书
个人委托书范本
2014/09/13 职场文书
服务明星事迹材料
2014/12/29 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL