使用expect和cvs来给华为设备做配置比较

以前一只用rancid来对cisco的设备做配置比较,但显然rancid对华为不太友好,一直就不支持华为设备(包括h3)。因此呢,由于本人还有点小聪明,知道rancid是考expect和cvs来实现的,于是乎自己写了些比较笨的脚本来给华为的设备做配置比较。
1)去华为设备抓配置
#!/usr/local/bin/expect
spawn telnet x.x.x.x
expect "sername:"
send "xxxx\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "su\n"
expect "assword:"
send "xxxx\n"
expect ">"
send "dis cu\n"
log_file /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
while (1) {
expect  {
 "More ----" {send " "}
 "1>" {
  send "quit\n" 
  exit
  }
}
}

2)把配置中的换行符和敏感信息去掉
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1

3)把配置加入rancid的cvs中
cvs add d-cp-ne20-1
cvs commit -m updates

4)把以下内容做成一个文件加入cron就ok了
cd /tmp/rancid.tmp
rm /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
/home/rancid/huawei/d-cp-ne20-1.sh
cd /tmp/rancid.tmp/Distribution/configs
tr -d '\r' < /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/\ \ ----\ More.\{57\}//g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 
sed -e 's/d\ cipher.\{25\}/d\ cipher\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 
sed -e 's/\ simple.*/\ simple\ ******/g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
sed -e 's/local-user\ .*\ /\local-user ***** \ /g' /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1 > /tmp/rancid.tmp/d-cp-ne20-1.tmp
mv /tmp/rancid.tmp/d-cp-ne20-1.tmp /tmp/rancid.tmp/Distribution/configs/d-cp-ne20-1
cvs commit  -m updates > /dev/null

btw:关于cvs在web上的显示,我使用的上viewvc,感觉比cvsweb要好哦。还有,不要说俺的脚本写的很烂,俺是学网络的,脚本这东西,现学现用,凑合了。

(0)

相关推荐

  • 使用expect和cvs来给华为设备做配置比较

    以前一只用rancid来对cisco的设备做配置比较,但显然rancid对华为不太友好,一直就不支持华为设备(包括h3).因此呢,由于本人还有点小聪明,知道rancid是考expect和cvs来实现的,于是乎自己写了些比较笨的脚本来给华为的设备做配置比较. 1)去华为设备抓配置 #!/usr/local/bin/expect spawn telnet x.x.x.x expect "sername:" send "xxxx\n" expect "asswo

  • 关于华为设备产品型号解释

    经常的遇见有人在qq群里面询问有关华为的产品的具体型号编号的含义,今天就把总结的内容给贴出来了,供大家参考. LI(Lite software Image)表示设备为弱特性版本. SI (Standard software Image)表示设备为标准版本,包含基础特性. EI(Enhanced software Image)表示设备为增强版本,包含某些高级特性. HI(Hyper software Image)表示设备为高级版本,包含某些更高级特性 Z,表示没有上行接口:(新产品不允许此位) G

  • Cisco设备做流量监控得方法

    方法一:HUB(方法太简单...略)方法二:TAP(太专业了..还要另外投资)方法三:SPAN(就是大家常说得Port Mirror或者Port Monitor)1.Cat2900XL/3500XL2900XL(config)#interface fastethernet 0/24   //进入接口配置模式下2900XL(config)#port monito r fastethernet 0/1  //配置f0/1为被监视得端口2900XL(config)#port monitor faste

  • 总结Cisco设备做流量监控的方法

    方法一:HUB(方法太简单...略) 方法二:TAP(太专业了..还要另外投资) 方法三:SPAN(就是大家常说得Port Mirror或者Port Monitor) 1.Cat2900XL/3500XL2900XL(config)#interface fastethernet 0/24   //进入接口配置模式下2900XL(config)#port monitor fastethernet 0/1  //配置f0/1为被监视得端口2900XL(config)#port monitor fas

  • 华为路由器防火墙配置命令总结

    一.access-list 用于创建访问规则.     (1)创建标准访问列表 access-list [ normal | special ] listnumber1 { permit | deny } source-addr [ source-mask ] (2)创建扩展访问列表 access-list [ normal | special ] listnumber2 { permit | deny } protocol source-addr source-mask [ operator

  • 华为各种型号交换机端口镜像配置方法总结

    有不少朋友在问华为交换机镜像方面的问题.通过本人现有的资料和文档,现把各种型号的交换机镜像方法总结一下.以便各位朋友能够方便查阅!在学配置之前,对于端口镜像的基本概念还是要一定的了解! 一.端口镜像概念: Port Mirror(端口镜像)是用于进行网络性能监测.可以这样理解:在端口A 和端口B 之间建立镜像关系,这样,通过端口A 传输的数据将同时复制到端口B ,以便于在端口B 上连接的分析仪或者分析软件进行性能分析或故障判断. 二.端口镜像配置 『环境配置参数』 1. PC1接在交换机E0/1

  • python实现数通设备tftp备份配置文件示例

    环境:[wind2003[open Tftp server] + virtualbox:ubuntn10 server]tftp : Open TFTP Server   ubuntn  python + pyexpect 采用虚拟机原因: pyexpect 不支持windows 注:原打算采用secrueCrt 脚本编写,因实践中发现没有使用linux下pexpect易用,灵活  ,之前习惯使用expect,因tcl[语法]没有python易用.易维护 编写些程序原因:最近出了比较严重故障:因

  • 详解Android 华为凹口屏适配小结

    Android8.0以后[凹口屏]得到迅速发展,目前已有了挖孔屏/水滴屏/刘海屏等各式各样的屏幕,究其根本依旧是[凹口屏],单华为一个品牌就涵盖了基本所有类型,而对于屏幕适配也是不可逃避的问题.小菜单独对华为各型号屏幕进行适配尝试,部分方法可通用到其他品牌设备,为 Android 标准 SDK 方法. 其实凹口屏已经出现很久了,对于获取凹口宽高的方式也有很多种,但是以前主流的凹口屏中凹口位置一般是位于屏幕正上方,但随着发展,也出现了在左上角的挖孔屏样式.相应的, Android 9.0 即 SD

  • python中SSH远程登录设备的实现方法

    目录 实验拓扑 实验目的: 实验脚本 代码优化 python中支持SSH协议的模块主要有Paramiko和netmiko两种,本次实验采用netmiko模块. netmikko模块为python的第三方模块,需要使用pip来下载安装.(联网的情况下) 下载完毕后,进入Python 3.10解释器,如果import netmiko没有报错,则说明Netmiko安装成功. 实验拓扑 将ensp的LSW1与本地虚拟网卡loopback0进行桥接,模拟将自己的电脑桥接到以下拓扑网络中. 实验目的: 通过

  • python和Appium移动端多设备自动化测试框架实现

    目录 前言: 一.流程图 二.appium服务 三.连接测试设备 四.元素封装 五.运行 前言: 本篇文章主要介绍基于pytest和Appium框架,支持Android和iOS功能自动化的测试框架.同时该框架支持多设备测试,并利用allure库,生成可视化测试报告.本框架主要涉及的内容包括:python3.pytest.appium.allure等,此处已假设你具备相应的基础知识,同时已有可以随时运行的测试环境(iOS设备的测试只能在Mac系统中执行,没有Mac的朋友们,可以看看不执行) 一.流

随机推荐