引言

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官方文档

Python编程之定时任务(crontab)详解的更多相关文章

  1. 日志切割logrotate和定时任务crontab详解

    1.关于日志切割 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处 ...

  2. Linux定时任务Crontab详解

    原文地址:http://edu.codepub.com/2011/0104/28518.php      今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Linux下的定 ...

  3. Linux定时任务Crontab详解_定时备份

    文章来源:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Lin ...

  4. 定时任务crontab 详解

    cron 是一个可以用来根据时间.日期.月份.星期的组合来调度对重复任务的执行的守护进程. cron 假定系统持续运行.如果当某任务被调度时系统不在运行,该任务就不会被执行. 要使用 cron 服务, ...

  5. [转]Linux定时任务Crontab详解

    转自:http://blog.chinaunix.net/uid-7552018-id-182133.html 今天做了个数据库的备份脚本,顺便系统得学习一下Linux下定时执行脚本的设置.Linux ...

  6. Python编程之多进程(multiprocessing)详解

    引言 multiprocessing是一个用于产生多进程的包,与threading模块的API类似.multiprocessing既可以实现本地的多进程,也可以实现远程的多进程.通过使用多个子进程而非 ...

  7. Python安装、配置图文详解(转载)

    Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(I ...

  8. 【和我一起学python吧】Python安装、配置图文详解

     Python安装.配置图文详解 目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境( ...

  9. Scala进阶之路-面向对象编程之类的成员详解

    Scala进阶之路-面向对象编程之类的成员详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala中的object对象及apply方法 1>.scala 单例对象 ...

随机推荐

  1. 基于WPF重复造轮子,写一款数据库文档管理工具(一)

    项目背景 公司业务历史悠久且复杂,数据库的表更是多而繁杂,每次基于老业务做功能开发都需要去翻以前的表和业务代码.需要理解旧的表的用途以及包含的字段的含义,表少还好说,但是表一多这就很浪费时间,而且留下 ...

  2. Docker 好用的镜像

    Docker 官方镜像 1.个人博客空间wordpress 2.开源管理系统odoo 3.开发文档生成工具star7th/showdoc.(启动说明文档https://www.showdoc.com. ...

  3. 小白之Python基础(三)

    列表和元组 1.列表:最常用的 Python 数据类型(可变的数据类型) 1)列表是一个值,它包含多个值构成的序列: 2)通过[ ]或list()创建的有序元素的集合: 3)表项(列表中的值,也可以叫 ...

  4. 并发编程原理学习-reentrantlock源码分析

    ReentrantLock基本概念 ​ ReentrantLock是一个可重入锁,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁,并且在获取锁时支持选择公平模式或者非公平模式 ...

  5. Linux系列之重定向操作

    前言 I/O重定向允许我们将命令的输入和输出重定向到文件中,以及将多个命令连接到一起成为管道.本文就来介绍有关重定向的知识. 标准输入.输出.错误 输出包括两种类型: 程序的结果.被称为标准输出或者s ...

  6. web前端要学些什么,学习思路

    有没有Web前端大神给个意见 我已学了 html  css JS 马上要学Vue或React不知道那个好 需不需要先了解一下jQuery 还需要学些什么

  7. WPF主窗体调用 User32的SetWindowPos 设置窗体置顶会导致与其他窗体抢夺焦点的问题

    最近发现:自己开发的窗体应用,在二级弹窗或者提示框弹出的时候,交替点击窗体和窗体外(相当于窗体交替的获取焦点和失去焦点),都会导致其他的应用一闪一闪的. 经过排查,是由于该窗体由于部分因素考虑,用了  ...

  8. UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试

    UnifyRemoteManager-多国语言绿色版v1.3-20200315,统一远程连接自动登录软件,欢迎测试 下载参考: 百度网盘:https://pan.baidu.com/s/15g-oXT ...

  9. 倒计时2日!基于 Apache DolphinScheduler&TiDB 的交叉开发实践,从编写到调度让你大幅提升效率

    当大数据挖掘成为企业赖以生存.发展乃至转型的生命,如何找到一款好软件帮助企业满足需求,成为了许多大数据工程师困扰的问题.但在当下高速发展的大数据领域,光是一款好软件似乎都不足以满足所有场景业务需求,许 ...

  10. Java 数字转汉字

    阿拉伯数字转汉字 public static String number2chinese(int src) { final String num[] = {"零", "一 ...