详解使用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中的实例方法、静态方法、类方法、类变量和实例变量浅析
Apr 26 Python
Python多线程编程(一):threading模块综述
Apr 05 Python
python插入数据到列表的方法
Apr 30 Python
Python的Django框架中URLconf相关的一些技巧整理
Jul 18 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
Python爬取数据并实现可视化代码解析
Aug 12 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
浅析python函数式编程
Sep 26 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
Oct 19 Python
发工资啦!教你用Python实现邮箱自动群发工资条
May 10 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集成FCK的函数代码
2008/09/27 PHP
PHP中include()与require()的区别说明
2010/03/10 PHP
php的大小写敏感问题整理
2011/12/29 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP远程调试之XDEBUG
2015/12/29 PHP
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
使用python语言,比较两个字符串是否相同的实例
2018/06/29 Python
Python使用pyautocad+openpyxl处理cad文件示例
2019/07/11 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
Python面向对象封装操作案例详解
2019/12/31 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
商场开业庆典策划方案
2014/06/02 职场文书
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
小学教师2014年度工作总结
2014/12/03 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
运动会观后感
2015/06/09 职场文书
银行服务理念口号
2015/12/25 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记