下面通过一个测试SNMP community最大长度的脚本,介绍一下net-snmp工具。
net-snmp是一组基于命令行的snmp manager工具,可以在命令行下进行snmp get, snmp set, snmp walk等操作,支持snmp v1/v2c/v3。原来的名字叫做ucd-snmp,也已经被移植到windows NT上。
它的主页在
http://net-snmp.sourceforge.net/由于它可以在命令行下进行SNMP操作,所以可以和TCL/expect很好的结合,完成自动化测试的功能。
下面的脚本(snmp.exp),不断的增加SNMP community,长度从1到256,每增加一个community,就调用snmp-get来进行SNMP get操作,如果get成功,说明此community有效;反之,就说明community已经超出了设备支持的最大长度。
这个脚本使用前面讲到的test.exp调用,调用方法是:
./test.exp -ssnmp.exp script
对它稍加修改,也可以直接在命令行中调用,此处不再赘述。
代码如下:
# $Id$
proc snmpCommTest {comm} {
global g_devip
spawn snmpget -c $comm -v 2c -r 2 $g_devip system.sysUpTime.0
expect {
"system.sysUpTime.0*" {
return 1
}
"*Timeout*" {
return 0
}
}
return 1
}
set spawn_id [login $g_devip $g_user $g_passwd]
if {$spawn_id == 0} {
errLog "login error\n"
return 0
}
set cmdCommAdd "create snmp community %s rw\n"
set cmdCommDel "delete snmp community %s\n"
set cmdHostAdd "create snmp host ip 192.168.1.2 community %s\n"
set cmdHostDel "delete snmp host ip 192.168.1.2 community %s\n"
set comm ""
for {set i 1} {$i < 256} {incr i} {
set comm "a$comm"
set cmd [format $cmdCommAdd $comm]
exp_send $cmd
expect {
"Error*" {
errLog "create comm len $i error"
continue
}
timeout {
errLog "create comm len $i timeout"
continue
}
"Entry Created"
}
set cmd [format $cmdHostAdd $comm]
exp_send $cmd
expect {
"Error*" {
errLog "create host error"
continue
}
timeout {
errLog "create host timeout"
continue
}
"Entry Created"
}
set rc [snmpCommTest $comm]
if {$rc == 0} {
errLog "community len $i failed"
}
set cmd [format $cmdHostDel $comm]
exp_send $cmd
expect "Entry Deleted"
set cmd [format $cmdCommDel $comm]
exp_send $cmd
expect "Entry Deleted"
}
分享到:
相关推荐
tcl脚本语言安装包,要安装expect脚本,必须先安装tcl。 一)Tcl 安装 主页: http://www.tcl.tk 下载地址: http://www.tcl.tk/software/tcltk/downloadnow84.tml 1.下载源码包 wget ...
Tcl/Expect学习心得:等待操作是很有用的及COM通讯脚本
expect-5.45-sol9-sparc-local.gz solaris9 安装expect工具方法 在网站http://www.sunfreeware.com/indexsparc9.html下载到对应系统本版软件包 需要下载4个软件包分别是: tcl-8.5a4-sol9-sparc-local.gz tk-8.5a4-...
这个是讲解Tcl/tk 中Expect用法的书,讲的同时结合实例,很易懂。绝对是入门的好材料。
昨天一个网友问如何能够将输入密码的工作在shell里面自动完成,研究了一下,发现这种交互式的工作,普通的shell实现不了,据说可以借助expect来搞定,所以初步学习了一下expect,成果和大家分享一下: 应用一: 实现...
expect-5.45-sol10-sparc-local.gz solaris9 安装expect工具方法 在网站http://www.sunfreeware.com/indexsparc9.html下载到对应系统本版软件包 需要下载4个软件包分别是: tcl-8.5a4-sol9-sparc-local.gz tk-8.5a4-...
expect实现 shell 交互式网络命令,插件..../configure --prefix=/usr/expect --with-tcl=/usr/tcl/lib --with-tclinclude=../tcl8.4.11/generic make make install ln -s /usr/tcl/bin/expect /usr/expect/bin/expect
NULL 博文链接:https://j2ee2009.iteye.com/blog/824829
Tcl,Tcl语言,expect,可用于交互式自动化脚本,方便自动化管理服务器。
[root@localhost expect]# rpm -ivh expect-5.45-14.el7_1.x86_64.rpm 准备中... ################################# [100%] 正在升级/安装... 1:expect-5.45-14.el7_1 ################################# [100%] ...
expect据说是交互性很强的脚本语言,但是expect依赖于tcl,但linux系统里一般不自带安装tcl,需要手动安装
使用tcl / expect编写的简单sms网关,使用mysql作为文本消息的数据源。
ZenTaoATF是由禅道开发团队开发的自动化测试框架,它只有一个脚本文件,可以支持各种脚本语言编写的自动化测试脚本,语法简单,使用灵活,后续会和禅道项目管理软件进行绑定和集成。 它的基本工作原理如下: 首先,...
SigmationTF的组网方法、设备管理、自动化测试脚本开发进行了详细讨论。 读者阅读本书前须具备一定的软件工程与测试理论基础、TCP/IP网络协议知 识、交换机和终端服务器等网络设备的使用经验,熟悉Windows和Linux...
expect能实现脚本的自动登录和自动输入功能。expect-5.44.1.15-5.el6_4.x86_64.rpm
expect.deb离线包,包含 expect_5.45-2_amd64.deb tcl8.5_8.5.11-1ubuntu1_amd64.deb两个 使用命令 dpkg --install expect_5.45-2_amd64.deb dpkg --install tcl8.5_8.5.11-1ubuntu1_amd64.deb 可以直接进行安装,不...
简单介绍tcl语言以和expect语法以及使用方法
讲述了tcl语言,还有dejaGNU。可以用于大型项目的自动化测试的工作,用过了,非常爽
这个就是下载别人的,用了一下,又传上去,会点血,软件是可以用的,大家下载试试,哈哈哈,欢迎大家下载,没有积分的私我,我发给你