1.批量登录地址不连续的交换

   

目录

1.1 实验目的

1.2 实验准备

1.3 实验代码

1.4 代码分段讲解


   

         在生产环境中,交换机的管理IP地址基本上不可能是连续,有些交换机的管理IP地址甚至在不通的网段,在这种情况下,我们就不可能用简单的for循环来进行批量登录连续的IP地址的交换机,我们需要额外建立一个文本文件,把需要登陆的交换机的IP地址全部写进去,然后用for循环配合open()函数来读取该文档中的管理IP地址,从而达到批量登录交换机的目的

1.1 实验目的

        通过Python脚本批量的登录所有交换机,并在每个交换机上都配置环回口地址

1.2 实验准备

        1.在即将创建的python的脚本下创建一个TXT文件,把所有交换机的管理IP都放进去,如下图所示

        2.检查所有交换机,确认环回口有没有配置IP地址

        3.创建实验脚本lab.py,如上图所示

1.3 实验代码

import paramiko
import time

username = 'python'
password = 'python'


f = open("ip_list.txt","r")
for line in f.readlines():
    ip = line.strip() #去除开头和末尾符号,默认换行符或者空格
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=ip, username=username, password=password,look_for_keys=False)
    print("成功登录到{}".format(ip))
    command = client.invoke_shell()
    command.send('screen-length 0 temporary\n')
    command.send('sys\n')
    command.send('undo info-center enable\n') #关闭消息通知
    command.send('undo stp enable\n') #关闭生成树
    command.send('Y\n')
    time.sleep(2)
    command.send('return\n')
    command.send('save\n')
    command.send('Y\n')
    time.sleep(1)
    output = command.recv(65535)
    print(output.decode("ascii"))
f.close()
client.close()

1.4 代码分段讲解

 首先还是引入paramiko和time模块,前面有讲的关于这两个模块的内容,不会的笔者可以去看一下,这里就不再赘述


import paramiko
import time

 定义用户名和密码


username = 'python'
password = 'python'

 读取文件里的IP地址,并且去除IP地址开头和结尾的换行符,然后登陆设备,使用open函数打开之前创建好的包含5个交换机的管理IP地址的文档,通过for循环一次遍历来依次遍历readlines()方法返回列表中的每个元素,即可达到批量登录SW1-SW3,即使这3个交换机的管理IP地址不是连续的


f = open("ip_list.txt","r")
for line in f.readlines(): #readlines()方法读取所有行并返回列表
    ip = line.strip() #移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=ip, username=username, password=password,look_for_keys=False)
    print("成功登录到{}".format(ip))
    command = client.invoke_shell()

 登录每台交换机,然后将命令发送到每台交换机,将回显内容打印出来,结果如下图所示


command.send('undo info-center enable\n') #关闭消息通知
command.send('undo stp enable\n') #关闭生成树
command.send('Y\n')
time.sleep(2)
command.send('return\n')
command.send('save\n')
command.send('Y\n')
time.sleep(1)
output = command.recv(65535)
print(output.decode("ascii"))

 

然后检查每台交换机的配置

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值