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()
模块接口文档:https://pypi.org/project/python-crontab/
参考: https://www.cnblogs.com/mysql-dba/p/13565057.html