前言
因为有约200台的网络设备需要每天登录巡检、查看配置、保存配置、定期更改密码(每周改一次),如果都手动去登录、配置将是非常耗费时间和人力的,所以就有了整理出脚本的想法。查看了网上大多是VBS编写的脚本,我对VBS不熟悉,刚好前段时间初步学习了Python,就想用Python整理一些自己需要的脚本。
提示:以下是本篇文章正文内容,下面案例可供参考
一、脚本主要功能
自动的逐台登录设备,并执行相关命令;
记录屏幕输出并保存到TXT文件中,将TXT文件以设备名、设备IP、时间命名。
二、脚本示例
#$language="python" #$interface="1.0" importtime importos importcsv user='admin' passwd='huawei@123' #定义一个变量,名为current_time,把当前PC的时间格式化后赋值给该变量 current_time=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())) defmain(): #设置CRT的屏幕同步属性为False。具体作用自行百度。 crt.Screen.Synchronous=False #通过withopen打开ip.txt文件,获取文件中的所有IP地址。txt文件中一个IP占用一行。 withopen('ip.txt','r')asrfile: host_list=rfile.readlines() forhostinhost_list: #由于readlines()方法在获取txt中的IP时,会把换行符读取出来,赋值给host_list变量时IP地址后边跟了“ ”导致CRT无法读取争取的IP,所以使用split()方法分割字符串,获取正确的IP地址信息。 cmd='/SSH2/L%s/PASSWORD%s/C3DES/MMD5%s'%(user,passwd1,host.split()[0]) crt.Session.ConnectInTab(cmd) time.sleep(1) crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') #把log_name()函数的值赋给current_name这个变量。 current_name=log_name() time.sleep(1) #给txt文件命名。 crt.Session.LogFileName=current_name+"_"+host.split()[0]+"_"+current_time+"_log.txt" crt.Session.Log(True) time.sleep(1) crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('displaycur ') #因为会有很多遇到more的情况,而我们又无法确定要输入几次空格,所以通过while循环中的条件判断,实现不同情况的处理。 whileTrue: crt.Screen.WaitForStrings(["----More----",'') time.sleep(1) crt.Screen.Send(' ') break crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('displayipinterbrie ') crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('quit ') time.sleep(3) deflog_name(): #定义一个还书获取屏幕当前设备名称 rowIndex=crt.Screen.CurrentRow colindex=crt.Screen.CurrentColumn-1 chushi_name=crt.Screen.Get(rowIndex,1,rowIndex,colindex) name=chushi_name.strip('<>') returnname main()
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
python
+关注
关注
51文章
4669浏览量
83457 -
脚本
+关注
关注
1文章
372浏览量
14628 -
SecureCRT
+关注
关注
0文章
20浏览量
7876
原文标题:用Python写SecureCRT批量登录/巡检网络设备脚本
文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
网络设备选择技巧
1.硬件要兼容 在网络设备选择上,尽量使所有网络设备都采用一家公司的产品,这样可以最大限度地减少高端与低端甚至是同等级别不同设备间的不兼容问题。而且不要为了省几十块钱而选择没有质量保证的网络
发表于 04-08 09:34
Linux常用网络设备
网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口。众所周知,在 OSI(Open Systems Interconnection,开放网际互连)中,网络被划分为七个层次,从下到
发表于 07-25 07:37
python写一个建模的脚本-微带天线的模型建立与仿真的过程搞定了
大多数联合仿真的脚本都是使用的Matlab进行编程,网上也有不少现成的api,因为对python比较熟悉,且python除了数值计算其他的功能也相当强大,并且免费开源,于是决定用
发表于 02-19 16:51
家用网络设备简介
家用网络设备简介
就在几年前,家用网络设备还相当简单。使用一根直连电缆、一部网络集线器或以太网路由器,您可以将两部或多部计算机连接在一起,共享外设、
发表于 08-05 10:26
•999次阅读
网络设备选择技巧
1.硬件要兼容
在网络设备选择上,尽量使所有网络设备都采用一家公司的产品,这样可以最大限度地减少高端与低端甚至是同等级别不同设备间的不兼容问题。而
发表于 12-27 10:57
•1288次阅读
securecrt怎么使用!securecrt使用教程
SecureCRT是网络工作者必备的一款软件,它的用途非常大,它可以在Windows系统下登录Linux服务器主机,因此有很多人会下载安装它,但是却不知道怎么用,那么SecureCRT
发表于 11-12 10:29
•4.2w次阅读
利用python脚本批量登录网络设备修改配置
按照下图,在ensp模拟器上搭建环境,为了演示批量修改设备,龙哥这里实验4台路由器,当然了,如果你电脑性能足够牛逼,你也可以多用几台路由器咯!然后标注好IP地址。
如何通过Python脚本批量采集华为交换机配置
通过学习python网络运维自动化减少重复无意义的工作量,本次实验虽然只是一条命令,通过display current-configuration采集设备配置,但是在有大量设备需要采集
如何使用Python通过SNMP监控网络设备?
前段时间,为了实现自动化巡检,我开发了自动化巡检工具,由于我的系统设备版本比较多,所以我是分别开发的客户端程序,服务端使用dll文件与客户端通信,服务端的dll在与python通信,通
评论