python-crontab 最佳实践
对于运维人员来说,使用脚本自动化编辑crontab是常见的一个工作场景,本篇介绍采用python-crontab 包来对crontab进行增、删、改等常见的操作。
1、介绍
python-crontab最新版是2.5.1,支持Python 2.7以及Python 3 (3.5, 3.6, 3.7), 不支持python 2.6
2、安装
pip install python-crontab
3、使用案例
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()