详解使用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实现html转ubb代码(html2ubb)
Jul 03 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python守护线程用法实例
Jun 23 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python使用生成器实现可迭代对象
Mar 20 Python
Django之模型层多表操作的实现
Jan 08 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Django项目使用CircleCI的方法示例
Jul 14 Python
Python3爬虫中关于Ajax分析方法的总结
Jul 10 Python
Opencv python 图片生成视频的方法示例
Nov 18 Python
Python 一键获取电脑浏览器的账号密码
May 11 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 数组使用详解 推荐
2011/06/02 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
购物车实现的几种方式优缺点对比
2018/05/02 PHP
PHP children()函数讲解
2019/02/03 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
Add a Formatted Table to a Word Document
2007/06/15 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
简单实现节流函数和防抖函数过程解析
2019/10/08 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python制作刷网页流量工具
2017/04/23 Python
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
Python循环实现n的全排列功能
2019/09/16 Python
简单了解Python write writelines区别
2020/02/27 Python
快速创建python 虚拟环境
2020/11/28 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
Miller Harris官网:英国小众香水品牌
2020/09/24 全球购物
外贸专业求职信
2014/03/09 职场文书
担保书怎么写
2014/04/01 职场文书
学校就业推荐信范文
2014/05/19 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
AJAX学习笔记
2021/05/18 Javascript
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS