Python编程之定时任务(crontab)详解
引言
python-crontab是python模块,提供了对cron任务的访问,并使得我们可以通过python对crontab文件进行修改。
安装
pip install python-crontab
注意:如果在使用CronTab的时候报错,报错信息为 got an unexpected keyword argument 'user' 可能是库安装错了,应该安装python-crontab而不是crontab。
使用案例
- 增加crontab任务,一般有两种方式
from crontab import CronTab # 方法一 # 创建cron访问
cron = CronTab(user='root') # 增加新作业
job = cron.new(command='echo hello_world') # 每一分钟执行一次
job.minute.every(1) # 写入作业
cron.write() # 方法二
with CronTab(user='root') as cron: job = cron.new(command='echo hello_world') job.minute.every(1) print('cron.write() was just executed')
- 访问crontab可以通过五种方式实现
from crontab import CronTab # 下述三种方法只能在Unix上使用 # 不会从任何用户加载任何内容
empty_cron = CronTab() # 从当前用户加载
my_user_cron = CronTab(user=True) # 从$username加载
users_cron = CronTab(user='username') # 可适用于window # 从文件中加载
file_cron = CronTab(tabfile='filename.tab') # 使用字符串变量作为crontab
mem_cron = CronTab(tab="""* * * * * command""")
- 设置作业时间
from crontab import CronTab cron = CronTab(user=True) job = cron.new(command='echo hello world') # 每两分钟运行一次
job.minute.every(2) # Set to */2 * * * * # 每两小时运行一次
job.hour.every(2) # Set to * */2 * * * # 每两天运行一次
job.day.every(2) # Set to * * */2 * * # 每天的早上2点执行
job.hour.on(2) # Set to * 2 * * * # 每周日执行
job.dow.on('SUN') # 每周日、周五执行
job.dow.on('SUN', 'FRI') # 四月到11月期间执行
job.month.during('APR', 'NOV') # 每两个月的2号到4号的早上10:02执行
job.setall(2, 10, '2-4', '*/2', None) # Set to 2 10 2-4 */2 *
- 删除crontab任务
# 删除一个任务 cron.remove(job) # 删除多个任务 cron.remove_all(comment='LoveFishO') cron.remove_all('echo') cron.remove_all()
- 获取修改任务的命令或注释
# 获取任务的命令或注释 command = job.command
comment = job.comment # 修改任务的命令或注释 job.set_command("echo LoveFishO")
job.set_comment("LoveFishO")
- 写入任务
# 把任务写入系统
cron.write() # 把任务写入文件
cron.write( 'filename.tab' ) # 把任务写入当前用户的定时任务中
cron.write_to_user(user=True) # 把任务写入特定用户的定时任务中
cron.write_to_user(user='LoveFishO')
Reference
Python编程之定时任务(crontab)详解的更多相关文章
- 日志切割logrotate和定时任务crontab详解
1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...
- Linux定时任务Crontab详解
原文地址:http://edu.codepub.com/2011/0104/28518.php 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Linux下的定 ...
- Linux定时任务Crontab详解_定时备份
文章来源:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Lin ...
- 定时任务crontab 详解
cron 是一个可以用来根据时间.日期.月份.星期的组合来调度对重复任务的执行的守护进程. cron 假定系统持续运行.如果当某任务被调度时系统不在运行,该任务就不会被执行. 要使用 cron 服务, ...
- [转]Linux定时任务Crontab详解
转自:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Linux ...
- Python编程之多进程(multiprocessing)详解
引言 multiprocessing是一个用于产生多进程的包,与threading模块的API类似.multiprocessing既可以实现本地的多进程,也可以实现远程的多进程.通过使用多个子进程而非 ...
- Python安装、配置图文详解(转载)
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...
- 【和我一起学python吧】Python安装、配置图文详解
Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...
- Scala进阶之路-面向对象编程之类的成员详解
Scala进阶之路-面向对象编程之类的成员详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala中的object对象及apply方法 1>.scala 单例对象 ...
随机推荐
- IDEA自定义liveTemplates(方法模板、类模板)
IDEA自定义liveTemplates(方法模板.类模板) 前言,搞这个模板有何意义? 降低大家写方法注释的成本,统一风格.有时候不是开发同学不爱写注释,而是没有合适的载体和空间. IDEA模板设置 ...
- 小白之Python基础(四)
条件判断和循环: 1.条件判断类型: 1)if语句:(注意:if中的条件如果是:非零数值.非空字符串.非空list等,就判断为True,否则为False.) 2)if-else语句: 3)if-eli ...
- gitpod.io,云端开发调试工具。
gitpod,一款在线开发调试工具,使用它你可以在网页上直接开发软件项目了. 比如你的项目仓库在github上,你可以直接在网址的前面添加gitpod.io/#,然后回车就能在网页上使用vscode打 ...
- 编译器优化:何为SLP矢量化
摘要:SLP矢量化的目标是将相似的独立指令组合成向量指令,内存访问.算术运算.比较运算.PHI节点都可以使用这种技术进行矢量化. 本文分享自华为云社区<编译器优化那些事儿(1):SLP矢量化介绍 ...
- 【RocketMQ】事务的实现原理
事务的使用 RocketMQ事务的使用场景 单体架构下的事务 在单体系统的开发过程中,假如某个场景下需要对数据库的多张表进行操作,为了保证数据的一致性,一般会使用事务,将所有的操作全部提交或者在出错的 ...
- 面向对象06---static关键字
public class Preson { { System.out.println("匿名代码块");// 2 } static { System.out.println(&qu ...
- 四 多例模式【Multition Pattern】 来自CBF4LIFE 的设计模式
出现在明朝,那三国期间的算不算,不算,各自称帝,各有各的地盘,国号不同.大家还记得那首诗<石灰吟>吗?作者是谁?于谦,他是被谁杀死的?明英宗朱祁镇,对,就是那个在土木堡之变中被瓦刺俘虏的皇 ...
- day01-GUI坦克大战01
JavaGUI-坦克大战 1.Java绘图坐标体系 坐标体系介绍:下图说明了一个Java坐标体系.坐标原点位于左上角,以像素为单位.在Java坐标体系中,第一个是x坐标,表示当前位置为水平方向,距离坐 ...
- Merge Into 语法支持
KINGBASE 兼容Oracle 语法,实现了merge into 的功能.以下以例子的形式,介绍merge into语法的使用.以下例子在V8R6 ,且 database_mode=oracle ...
- mysql_varchar与中英文关系总结
mysql 4.0版本以下,varchar(50), 指的是50字节,如果存放utf8汉字时,只能存放16个(每个汉字3字节) mysql 5.0版本以上,varchar(50), 指的是50字符,无 ...