1. 程式人生 > >Python 備份cisco ios 設備 簡例

Python 備份cisco ios 設備 簡例

file net device codes pri bre list strftime user

netmik庫用來ssh,os庫用來管理文件夾,datetime用於生成文件名
.

from netmiko import ConnectHandler
import os
import datetime
#define device type
cisco = {
    ‘device_type‘:‘cisco_ios‘,
    ‘ip‘:‘‘,
    ‘username‘:‘admin‘,
    ‘password‘:‘ccie‘,
    ‘secret‘:‘ccie‘,
}

.

#get ip address from a file
ip_addr = open("G:\\PythonProject_netmiko\\ipList.txt")
path ="G:\\PythonProject_netmiko\\"
folder_v = os.listdir() #查看當前文件夾所有文件
while True:
    print("input your bak file folder name:")
    folder_name = input()
    if folder_name in folder_v:
        print("there is a same name file already, please input again!")
    else:
        create_path = path + folder_name
        os.mkdir(create_path)
        print("Created folder:"+folder_name+" successfully!\n")
        print("NOTE:the bakup file will be in: ",create_path)
        break

for ip in ip_addr:
    cisco[‘ip‘] = ip.strip(‘\n‘)
    print(‘Connecting: ‘+ip.strip("\n")+"...")
    net_connect = ConnectHandler(**cisco)
    print("Connected successfully !")
    net_connect.enable()
    run_config = net_connect.send_command(‘show run‘)
    save_name = ip.strip() + datetime.datetime.now().strftime("-%Y%m%d-%H_%M_%S")
    print(‘Backing up: ‘+ip.strip("\n")+‘...‘)
    f = open(create_path +"\\"+save_name+".txt",‘w‘)
    f.write(run_config)
    f.close()
    print("Backed up successfully!")
f = open(create_path +"\\0_IP-date-time.fileType",‘w‘)#used to instruct
f.close()
ip_addr.close()

.
For minding codes

print("\n\n\nBacked up all devices compeleted ! ")
print("Please check the bakeup file in the follow folder: "+create_path)

.
Over~ Good luck to you !

Python 備份cisco ios 設備 簡例