详解使用python crontab设置linux定时任务_python

熟悉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
, linux定时任务
, crontab
定时执行任务
linux定时任务crontab、linux定时器crontab、linux crontab 定时、linux crontab 详解、linux crontab python,以便于您获取更多的相关知识。

时间: 2024-08-04 09:32:32

详解使用python crontab设置linux定时任务_python的相关文章

Android开发入门(一)详解活动 1.2 设置Activity的样式和主题

默认情况下,一个activity占据整个屏幕.然而,可以为一个activity设置一个"对话框"主题,这样, 它就能像一个浮动的对话框显示出来了.举个例子,你可能想要把你的activity定义成一个弹出的"对话框 ",通知用户进行一些操作.在这种情况下,显示一个"对话框"样式的anctivity是一个引起用户注意的好 方法.想要给activity设置主题,很简单,只需在AndroidManifest.xml文件中为<application&

详解在Python和IPython中使用Docker

  这篇文章主要介绍了详解在Python和IPython中使用Docker,Docker是一个吸引人的新系统,可以用来建立有趣的新技术应用,特别是云服务相关的,需要的朋友可以参考下 现在Docker是地球上最炙手可热的项目之一,就意味着人民实际上不仅仅是因为这个才喜欢它. 话虽如此,我非常喜欢使用容器,服务发现以及所有被创造出的新趣的点子和领域来切换工作作为范例. 这个文章中我会简要介绍使用python中的docker-py模块来操作Docker 容器,这里会使用我喜爱的编程工具IPython.

详解python3百度指数抓取实例_python

百度指数抓取,再用图像识别得到指数 前言: 土福曾说,百度指数很难抓,在淘宝上面是20块1个关键字: 哥那么叼的人怎么会被他吓到,于是乎花了零零碎碎加起来大约2天半搞定,在此鄙视一下土福 安装的库很多: 谷歌图像识别tesseract-ocr pip3 install pillow pip3 install pyocr selenium2.45 Chrome47.0.2526.106 m or Firebox32.0.1 chromedriver.exe 图像识别验证码请参考:http://ww

详解rsyslog/Python/LogAnalyzer 记录和查看服务端/客户端日志

RSYSLOG 是一个高效的日志系统,也是目前 Ubuntu 和 CentOS 默认使用的日志系统. LogAnalyzer 是一个 PHP 写成的 Web 前端,使用它可以分析和查看 RSYSLOG 生成的日志. 经过研究,我准备直接使用这两个系统.本文记录了我在配置这两个系统中遇到的问题. rsyslog 配置简介 rsyslog 是负责收集 syslog 的程序,可以用来取代 syslogd 或 syslog-ng. 在这些 syslog 处理程序中,个人认为 rsyslog 是功能最为强

Linux下的信号详解及捕捉信号_unix linux

信号的基本概念 每个信号都有一个编号和一个宏定义名称 ,这些宏定义可以在 signal.h 中找到. 使用kill -l命令查看系统中定义的信号列表: 1-31是普通信号: 34-64是实时信号 所有的信号都由操作系统来发! 对信号的三种处理方式 1.忽略此信号:大多数信号都可使用这种方式进行处理,但有两种信号却决不能被忽略.它们是:SIGKILL和SIGSTOP.这两种信号不能被忽略的,原因是:它们向超级用户提供一种使进程终止或停止的可靠方法.另外,如果忽略某些由硬件异常产生的信号(例如非法存

详解 UEFI 模式下安装 Linux

引言 几年来,一种新的固件技术悄然出现,而大多数普通用户对此并无所知.该技术被称为 可扩展固件接口Extensible Firmware Interface(EFI), 或更新一些的统一可扩展固件接口(Unified EFI,UEFI,本质上是 EFI 2.x),它已经开始替代古老的 基本输入/输出系统Basic Input/Output System(BIOS)固件技术,有经验的计算机用户或多或少都有些熟悉 BIOS. 本页面是给 Linux 用户使用 EFI 技术的一个快速介绍,其中包括有关

新浪微博OAuth详解以Python为例

让我先吐槽一下新浪微博的那个 OAuth 文档,写得就像个锤子一样! 1. 什么是OAuth OAuth 是一套认证形式,并被逐渐推荐为一套标准,它的老家在 http://oauth.net . OAuth 实现的是一套三方委托认证的模式. 举例来说,有人想知道你新浪微博上的所有粉丝都有哪些,而你也愿意让他知道.但是,这里有一个问题,如果你直接把账号和密码告诉这个人的话,你可能会觉得很不安全,你只想把有限的东西给这个人,而不是把账号和密码都交出来. 于是,可以使用这样的一种方式,这个人去找新浪要

python数据库操作常用功能使用详解(创建表/插入数据/获取数据)_python

实例1.取得MYSQL版本 复制代码 代码如下: # -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQLdb as mdbcon = Nonetry:    #连接mysql的方法:connect('ip','user','password','dbname')    con = mdb.connect('localhost', 'root',        'root', 'test');    #所有的查询,都在连接con的一个模块

详解介绍python 的浅拷贝和深拷贝

copy浅拷贝则是生成新指针的同时,也重新开辟一块内存来放与之前一摸一样的对象实体: deepcopy深拷贝则是会对对象实体进行递归开辟实体对象的内存空间,也就是一级对象实体中是否有指针指向其他对象. 为了让一个对象发生改变时不对原对象产生副作用,此时,需要一份这个对象的拷贝,python 提供了 copy 机制来完成这样的任务,对应的模块是 copy. 浅拷贝:shadow copy 在 copy 模块中,有 copy 函数可以完成浅拷贝. from copy import copy 在 py