对于运维人员来说,使用脚本的自动化编辑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()