详解使用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逐行读取文件内容的三种方法
Jan 20 Python
python实现删除文件与目录的方法
Nov 10 Python
Python读取Excel的方法实例分析
Jul 11 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
Python面向对象总结及类与正则表达式详解
Apr 18 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
Django中文件上传和文件访问微项目的方法
Apr 27 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
Python从文件中读取数据的方法步骤
Nov 18 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
php 日期时间处理函数小结
2009/12/18 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
PHP实现倒计时功能
2020/11/16 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
javascript新手语法小结
2008/06/15 Javascript
javascript单例模式的简单实现方法
2015/07/25 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
JS实现吸顶特效
2020/01/08 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
python ddt实现数据驱动
2018/03/14 Python
Python numpy 点数组去重的实例
2018/04/18 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
python3中确保枚举值代码分析
2020/12/02 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
一套SQL笔试题
2016/08/14 面试题
宿舍使用违章电器检讨书
2014/01/12 职场文书
大学生个人求职口试自我评价
2014/02/16 职场文书
滴水洞导游词
2015/02/10 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python