思路
1、使用python的netmiko模块对华为交换机进行配置 备份
2、在centos7上使用crontab计划任务配置每周自动备份一次配置文件
配置
1、准备一台centos7设备,安装好python3.7以及安装好netmiko模块(自行百度)
2、输入一下配置,并且保存为文件
from netmiko import ConnectHandler
import sys
import time
from datetime import datetime
import os
##获取当前时间的年月日
file_time = time.strftime("%Y-%m-%d", time.localtime())
##创建文件夹
##创建实时时间文件夹
def mkdir(file_time):
folder = os.path.exists(file_time)
if not folder: # 判断是否存在文件夹如果不存在则创建为文件夹
os.makedirs(file_time) # makedirs 创建文件时如果路径不存在会创建这个路径
mkdir(file_time)
#通过这个函数可以切割各个部分然后通过循环赋值给每一个变量
f = open('/root/HW-Config/ip2.txt', 'r', encoding='UTF-8')
line = 'A'
print('正在采集设备配置,请稍等......')
while line != "":
line = f.readline()
time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
while line:
a = line.split()
ip = a[:1]
username = a[1:2]
password = a[2:3]
line = f.readline()
device = ConnectHandler(device_type='huawei', ip=ip[0], username=username[0], password=password[0])
output = device.send_command('dis cu')
file_name = open('%s/%s-%s.log' % (file_time, ip[0], time), "w+")
print(output, file=file_name, flush=True)
#print(output, file=sys.stdout)
print('已采集%s' % ip[0])
device.disconnect()
f.close()
print('已全部采集成功')
python保存配置文件代码部分
注意:代码中提到了一个ip2.txt.用来存放ip地址以及账号密码,,格式如下
192.168.1.1 admin admin
192.168.1.2 admin admin
有多少都写进去即可
3、使用crontab计划任务
crontab -e #进入计划任务编辑页面
00 10 * * 0 source ~/.bashrc && cd /root/HW-Config/ && /usr/bin/python3 /root/HW-Config/HW-Config-backup.py
从前到后解释一下这条命令
00 -----> 分钟(0-59)
10 -----> 小时(0-23)
* ------> 天(1-31)
* ------> 月(1-12)
0-------> 一星期内的天(0~6,0为星期天)
所以我这个是每个月的每一周日都进行配置备份
source ~/.bashrc && cd /root/HW-Config/ && /usr/bin/python3
上面的命令是使用哪一个解释器,因为centos7自带python2.7,防止centos7找错解释器,结果运行不了。所以我们要指定python3.7
cd /root/HW-Config/ #这个是因为如果直接运行会保存配置文件到用户目录下,用户目录下会有比较多文件,对于新手来说比较难查找,所以直接保存运行目录下
/root/HW-Config/HW-Config-backup.py
这个是需要执行的python文件,使用绝对路径比较稳定
4、执行后结果
配置文件就是后两个
这样就结束啦,每周就会自动备份文件啦