随着管理的网络设备越来越多,手工逐台登录设备进行巡检,真是感觉力不从心,效率也极其低下。为了提高工作效率,我们常常需要通过编写自动化脚本来完成那些重复性的工作。在此,我将为大家献上一个福利,这是一个使用Python封装的自动化登录网络设备并执行命令的脚本。闲言少叙,让我们先来看看这个脚本的基本结构。
这个脚本的功能简直是个神器,它封装了两个重量级类,分别是TelnetTool
和SSHTool
。这两个类的作用,不仅实现了日常网络设备的登录,更是把远程执行命令的方法玩得如魔术一般炫酷。 上述代码分别是TelnetTool
和SSHTool
的类,它实现的功能是远程登录并执行多条命令,并把结果返回。其中该类集成了BaseClass
,关键代码如下:★该类是一个基础类,定义了一些公用的方法,例如
”savefile
,用于把执行的命令的结果保存成文件。
这个脚本不仅可以提高工作效率,而且可以避免因为手动登录设备执行命令而导致的错误。在实际使用中,可以根据需要修改设备的登录信息、命令等信息,以适应不同的场景。同时,也需要注意安全性问题,比如密码泄露等问题。
obj_telent = Telnettool('192.168.0.4','admin', 'admin123','admin123')
obj_telent.telnet_on(['display memory-usage','display interface brief'])
★其Telnettool接收四个参数,第一个IP地址,第二个用户名,第三个密码,第四个是super密码。其中第四个参数是可选的,交换机设置了super密码就填上,没有就空着。
”
如果想把记录保存为文件可以调用savefile
方法。如下:
obj_telent.savefile()
下面通过一个案例演示这个脚本如何使用。
★拓扑图中AR2配置telnet方式远程管理,用户名、密码和super密码分别是admin,admin123、admin123;LSW1配置ssh方式远程管理,用户名和密码和AR2一样。
”
采用此脚本去获取网络设备的对应信息,具体如下:
if __name__ == '__main__':
commands = ['display ip interface brief', 'display cpu-usage']
ip_list = ['192.168.56.10', '192.168.56.20']
for ip in ip_list:
ssh_obj = SSHtool(host=ip, username='admin', password='admin')
t = threading.Thread(target=ssh_obj.ssh_on, args=(commands,))
t.start()
通过执行如上代码,就可以自动去获取自己想要的信息,如果网络设备足够多,用此方法效率会更高。执行完后会生成对应的文件保存下来。
后续还可以根据自己的业务情况灵活地调整脚本的功能。例如,可以把巡检结果输出一个巡检表并实现邮件通知。
联系客服