python实现crontab定时任务的增删改查

python实现crontab定时任务的增删改查

本人主要业务方向是后台,在开发不同版本迭代或者项目的部署时,每次都手动去创建cron定时任务,很不符合coder的行事风格。

coder的原则是能偷懒的绝不自己动手去干,所以我们可以通过python及包完成相关的cron定时任务,这里介绍常用的增删改查操作。

1.安装pkg

pip install python-crontab
# version
# python_crontab == 2.5.1
2.使用案例
1).增加一个crontab任务
from crontab import CronTab
方法一:
cron = CronTab(user='root')
job = cron.new(command='echo hello_world',comment='id')
job.minute.every(1)
cron.write()
方法二:
with CronTab(user='root') as cron:
job = cron.new(command='echo hello_world',comment='id')
job.minute.every(1)
2).删除一个crontab任务
del_cron= CronTab(user='root')
iter = del_cron.find_comment('backup1')
for job in iter:
edit_cron.remove(job)
edit_cron.write()
3).编辑一个crontab任务,通过comment找到该任务,然后编辑
cron= CronTab(user='root')
iter_job = cron.find_comment('backup1')
for job in iter_job:
job.set_command("python bakcup.py --port=3306")
cron.write()
4).执行任务
iter_job = cron.find_comment('data_list')
for job in iter_job:
out = job.run()
print out
5).设置任务运行时间
设置每天凌晨4点20运行
20 4 * * * python backup.py --host=1111 # backup2
cron = CronTab(user='root')
job = cron.new(command='python backup.py --host=1111',comment='backup2')
job.hour.on(4)
job.minute.on(20)
cron.write()

参考:

python实现crontab定时任务的增删改查 相关文章

CSS实现展开动画

CSS实现展开动画 展开收起效果是比较常见的一种交互方式,通常的做法是控制 display 属性值在 none 和其它值之间切换,虽说功能可以实现,但是效果略显生硬,所以会有这样的需求——希望元素展开收起能具有平滑的效果。 实现 首先想到的是通过 height 在 0

0x02 基本算法-枚举、模拟、递推

递归实现指数型枚举 int _, n, m, k, x, y;vectorint vec;void calc(int x) { if (x == n + 1) { for (int i = 0; i vec.size(); ++i) cout vec[i] " "; cout "\n"; // 注意一下,以后输出回车用 "\n" 而不是 endl return; } calc(x + 1), vec.push_back(x);

python 字典的用法,访问、增删合并等
python字典可以存储任意类型的对象,字典的每个键:值 冒号(:)分割,每个对直接逗号(,)分割,整个字典包含在{}中,例如:d = {key1 : value1, key2 : value2, key3 : value3 } 注:键是唯一的,值不一定,值可以是任何类型对象,键必须是不可变的,如字符
leetcode 922 python

922. 按奇偶排序数组 II 难度 简单 | 标签 排序 数组 Description 给定一个非负整数数组 A , A 中一半整数是奇数,一半整数是偶数。 对数组进行排序,以便当 A[i] 为奇数时, i 也是奇数;当 A[i] 为偶数时, i 也是偶数。 你可以返回任何满足上述条件的数

pytest警告DeprecationWarning: Using or importing the ABCs from collections instead of from collections.abc is deprecated since Python 3.3,and in 3.9 it will stop working
问题现象 =========================================================================================== warnings summary =========================================================================================== f:\python3.7\lib\site-package
python --字典相关知识点
一、访问字典 访问字典中的值 要访问字典元素,你可以使用方括号和对应键,以获得其对应的值。 dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'} print ("dict['Name']: ", dict['Name'])print ("dict['Age']: ", dict['Age']) 当执行上面的代码,它产
java List去除重复数据实现

抓包示例 root@python:~# tcpdump -n -S tcp port 5009 # -S 参数的目的是获得ack的绝对值,不加该参数,第三次握手的ack为相对值1tcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on eth0, link-type EN10MB (Ethern

【Devops】 发布一个Python项目(Flask服务后端)到K8S环境

前言: 有一段时间没有更新博客了,今天给大家分享一下如何将一个python项目成功部署并运行到K8S环境,特做一个记录 准备工作 1. 编写一个python项目,我这边提供的一个Flask服务,提供接口的mock能力。(项目里面编写如下文件) dockerfile jenkinsfile dep

python类继承

#类是另一个类的特殊版本,可以使用继承。一个类继承另一个类时会自动获得另一个类的所有属性和方法。原来的类称为父类,新类称为子类。 #同时新类可以定义自己的属性和方法 #子类的方法:__init__() #super()是特殊函数,帮助python将父类和子类关联起来,