内蒙古电力技术  2019, Vol. 37 Issue (03): 56-59   PDF    
信息网络Python批量操作系统应用分析
冯雪, 徐江     
巴彦淖尔电业局, 内蒙古 巴彦淖尔 015000
摘要:针对巴彦淖尔电业局信息网络交换机数量、种类多,管理手段落后,大量重复性操作导致工作量大、效率低等问题,提出采用批量操作系统,将大量的重复性操作编写成Python脚本,在Crt软件中进行调用,实现了批量交换机的自动化操作。通过查询交换机配置信息和修改远程登录密码2个应用实例,证明了该系统能够极大提高工作效率,节约人力成本,并能保证结果的准确性。
关键词信息网络     Python     Crt软件     交换机     批量操作    
Application Analysis on Python Batch Operation System of Information Network
FENG Xue, XU Jiang     
Bayannur Electric Power Bureau, Bayannur 015000, China
Abstract: In view of the large quantity and variety of information network switchers, the backward in management, and the repetitive operation resulted in heavy workload and low work efficiency in Bayannur Electric Power Bureau. Put forward adopting the batch operation system, which compiles a large number of repetitive operations into Python scripts and calls them in Crt software, through which the automatic operation of batch switches is realized. The application examples verify that the system can help improving the work efficiency, save the human cost and confirm the result accuracy.
Key words: information network     Python     Crt     switcher     batch operation    
1 巴彦淖尔电业局信息网络管理现状

巴彦淖尔电业局信息网络管辖70个变电站,办公用计算机3800多台,网络交换机410台,其中,外网交换机32台,内网交换机378台,内网交换机型号主要为思科C3945、C3560、C2950、C2960,华为S5700,华三S5310。现依赖信息网络的业务主要涉及生产MIS、ERP、综合门户、财务管控、视频会议、营销缴费系统、法律系统、计划统计系统等[1]。由于业务量不断增多,对信息网络的性能、管理水平提出了更高的要求。

目前,巴彦淖尔电业局信息网络主要存在以下几方面问题。

(1)新入职人员不断增多,人员部门间流动频繁,办公地点经常调整,各处室缺乏及时有效的沟通,网络管理员对人员的变动信息掌握不及时,IP盗用及乱用现象较为严重,导致部分用户网络中断。排查网络故障方法十分繁琐,给网络管理带来很大的困难。

(2)根据《网络安全法》以及内蒙古电力公司信通中心提出的相关要求,网络管理员需要留存网络日志不少于6个月、定期修改设备的登录密码、实现MAC+IP+PORT绑定等,导致网络管理员的日常维护工作十分繁重。

(3)由于历史原因,早期对数据重要性意识不足,缺乏对设备原始资料的完整保存,网络管理员对已用的网络资源、现有设备的运行情况掌握不准确,对未知资源未能及时恢复成可用状态,网络资源严重浪费,影响新分配IP、调整IP、申报网络设备等工作。

(4)目前,在申报网络设备大修和技改工程时,网络管理员往往要逐一登录到交换机上,手动逐条输入命令进行查看、配置、统计设备信息,不仅工作量大,耗费大量的人力成本,而且很难保证统计结果的准确性。随着农电的逐步接入,内外网交换机的数量大幅增加,提升网络管理员的工作效率,提高配置成功率,是亟需解决的问题。

针对上述问题,本文在Python3.6系统中,以交换机管理为例,将管理员日常运维中大量繁琐的重复性操作(例如:输入IP地址、用户名、密码、配置代码等)写成脚本,再利用Secure Crt 8.1(简称Crt)软件的Script Files接口,调用Python脚本,实现批量信息网络设备的自动化操作,有效提高网络管理员的工作效率和操作结果的准确性。

2 批量操作系统介绍

近几年,信息网络发展十分迅猛,基于VBScript的信息网络设备批量操作系统[2-4]在其他省市已经提过。内蒙古地区信息网络的发展相对滞后,至今没有相关文献涉及批量操作系统的研究与使用,网络管理员仍然以逐台登录设备、手动输入重复命令的方式进行大量设备的管理,工作效率较低。

Python语言具有简洁性、易读性以及可扩展性特点,用户可以在任何计算机上免费安装使用Python。VBScript只能处理简单任务的编程语言,其功能不能与Python相提并论。而且,VBScript常用来编写病毒文件,一旦使用不当,病毒在局域网中扩散开来,将造成严重的后果[5]。因此,本文选用Python语言来编写批量操作系统的脚本文件,将有利于日后系统功能扩展。

2.1 手动配置交换机

在传统的日常网络维护中,网络管理员需手动配置n台交换机。单台交换机配置流程如图 1所示。

图 1 传统手动配置交换机流程图

首先登录Secure Crt,输入交换机的管理地址,选择通过远程登录服务的标准协议Telnet进行登录,输入交换机的用户名和密码,运行配置命令,保存配置,检查配置无误后退出交换机。然后再对下1台交换机进行重复操作。

2.2 批量操作系统配置交换机

在批量操作系统中,根据不同的需求,编写能够实现不同功能的Python脚本,然后在Crt中进行调用,实现批量交换机的自动运行,具体步骤如图 2所示。

图 2 批量操作系统配置交换机流程图
2.2.1 建立设备文件

新建1个设备信息Devices.txt文件,包括交换机的不同参数,如名称、管理地址、远程登录服务的端口号23、登录协议telnet、设备型号、登录密码等,有多少台交换机,就在txt文档中写多少行,这些参数之间用英文分号“; ”隔开。

2.2.2 编写Python脚本

在Python中,新建工程,编写test.py脚本。

(1)在脚本中,调用上述Devices.txt文件,通过指定分隔符英文分号“; ”,使用split函数对字符串进行切片,返回分割后的字符串列表。

(2)利用Crt中的session.log()打开日志记录,session.Synchronous()设置屏幕的同步属性,session. Connect()连接交换机,Send()向远端设备、屏幕发送字符串,WaitForString()发送命令后等待指定的字符串,session.Disconnect()关闭连接。

(3)按照txt文档中交换机的参数逐行执行,每执行1行,即打开1个Crt的标准界面,使用telnet协议远程登录到交换机,输入交换机的登录密码,从用户视图进入系统视图,查看交换机的配置信息和调试信息,对交换机进行配置,待这台交换机配置命令执行完以后,关闭标准界面,再执行下1行,以此类推。

(4)对需要统计、配置的交换机信息进行保存,针对每1台交换机,保存为名称_型号_log.txt文件,用于记录交换机的操作过程,显示当前的配置信息。

(5)对脚本的运行进行计时。

2.2.3 运行脚本文件

打开Crt软件,点击菜单的script run,选择test. py脚本文件,自动执行脚本文件。

2.2.4 保存日志文件

查看名称_型号_log.txt日志文件,得到所需的交换机的配置信息,检查备份文件。

3 批量操作系统的检验

批量操作系统的核心是具有不同功能的Python脚本文件,本文以查询交换机的配置信息和修改交换机的远程登录密码为实例,说明该批量操作系统的可用性及有效性。

3.1 查询交换机的配置信息

选取巴彦淖尔电业局15台H3c交换机,查询这15台交换机的配置信息。如表 1所示,建立设备的参数文件Devices.txt。

表 1 交换机参数

新建工程chaxx,编写Python脚本文件test_chaxx.py,使用display current-configuration查看当前交换机配置情况,display transceiver int查看交换机接口光模块信息,display logbuffer查看系统日志,display interface brief查看接口汇总情况,将15台交换机的配置信息保存为15个交换机的名称_型号_log.txt文件。

在Crt中调用test_chaxx.py文件,待程序运行结束,如图 3所示,在根目录下生成了15个日志文件,共用时99.41 s,而1名业务熟练的网络管理员手动配置大约需要90 min。检验日志文件发现,每台交换机的日志文件都包含了该交换机的配置情况、接口的光模块信息、系统日志、接口的汇总情况。

图 3 交换机的配置信息文件
3.2 修改交换机的登录密码

选取巴彦淖尔电业局5台H3c交换机,修改这5台交换机的远程登录密码,进行验证。如表 2所示,建立设备的参数及远程登录密码文件Devices.txt。

表 2 交换机参数

新建工程gaimm,编写Python脚本文件test_gaimm.py,在用户视图下输入super命令,切换到高级别,使用user-interface vty 04进入虚拟接口,通过set authentication password simple ***(***为设置的新密码),改为如表 2所示的新密码,然后,保存和更改交换机的配置,将5台交换机的配置信息保存为5个交换机名称_型号_log.txt文件。

在Crt中调用test_gaimm.py文件,待程序运行结束,如图 4所示,生成了5个日志文件,共用时30.11 s,而1名业务熟练的网络管理员手动配置大约需要30 min。使用表 2中的新密码进行逐一验证,发现5台交换机均可使用新密码进行远程登录。

图 4 交换机的配置信息文件
3.3 结论

通过查询交换机的配置信息和修改远程登录密码2个应用实例,充分说明批量操作系统的可用性及有效性,该系统的使用将大大缩短网络管理员的工作时间,提高工作效率及准确性。

4 结束语

2018年,巴彦淖尔电业局引入IT综合业务管理平台实时监控管理信息网络,网络管理员需要在全局378台内网交换机上配置snmp协议,前期人工手动配置需要逐台登录交换机录入代码,不仅耗时长、效率低,而且极易出现交换机接入失败问题,且排查困难。

通过批量操作系统进行配置,在Crt软件中调用脚本文件即可自动配置,效率提高约60倍,极大减少了人工操作的工作量,提高了网络管理的效率和准确性。

参考文献
[1]
李寅东, 贾红, 田崇军. 内蒙古电力信息网络常见故障分析及处理[J]. 内蒙古电力技术, 2014, 32(4): 85-88.
[2]
安学民, 么利中, 杨尉薇. 电力企业局域网批量配置网络设备的方法[J]. 山西电力, 2014(6): 41-44. DOI:10.3969/j.issn.1671-0320.2014.06.012
[3]
王玲敏, 陈兵. 利用VBScript脚本功能提高信息网络日常维护工作效率[J]. 电脑知识与技术, 2013, 2(9): 420-437.
[4]
王飞, 曹祥龙.一种批量配置网络设备的方法: 201310300521.4[P].2013-10-02. http://nmgdl.paperopen.com/oa/DArticle.aspx?type=view&id=20140421
[5]
刘景云. 见招拆招, 智斗加密型VBS脚本病毒[J]. 电脑知识与技术, 2016(5): 116-118. DOI:10.3969/j.issn.1009-3044.2016.05.042