• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

[原创]从服务器能够到达的所有网络设备里面提取设备配置信息。

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 28次 | 进入软件测试论坛讨论

领测软件测试网
[i:7ce538da72][b:7ce538da72]本工具用于从网络设备(CISCO)中提取配置文件,并保存到一个文本文件中。[/b:7ce538da72][/i:7ce538da72]
需要 expect 软件支持, 如果你的操作系统没有这个软件,请根据需要下载 
在 sco unix 中,请到 http://www.sco.com/skunkware/中下载, 三个软件: expect , tcl, tk 并安装。 
 
 :em02: [b:7ce538da72]主程序-----dome.sh [/b:7ce538da72]
#!/bin/sh 

counter=0 

Usage() 

echo " 
Usage: $0 [iplist_filename] 
功能:本程序用于读网络设备的配置信息。 
参数: iplist_filename, 指定需要工作的网络设备文件。 
文件格式: 
节点编号 ip地址 Te.net密码 超级用户密码 节点设备说明 

如果没有定义iplist_filename, 缺省文件名为:iplist 
程序输入文件: iplist.out 或者 自定义文件名.out \n\n" 

exit 1 



[ $# -eq 0 ] && input="iplist" 
[ $# -eq 1 ] && input=$1 
[ $# -gt 1 ] && Usage 


output="$input.out" 
[ -r $input ] || { 
echo "Error: Can't open file:$input" 
exit 1 

echo "">$output 

lines=`wc -l $input|awk '{ print $1 }'` 

while read node host pass1 pass2 name 
do 
counter=`expr $counter + 1 ` 
echo "\nGet configure from [ $host ], Please wait...\t[$counter/$lines]\c">&2 
echo "============== begin ==============================\n">>$output 
echo "NODE=$node">>$output 
echo "NAME=$name">>$output 
./router.cmd $host $pass1 $pass2>>$output 
case $? in 
0) echo "\t----\c">&2; continue;; 
1) echo "\tE--- error \c">&2; continue;; 
2) echo "\t-E-- error \c">&2; continue;; 
3) echo "\t--E- error \c">&2; continue;; 
4) echo "\t---E error \c">&2; continue;; 
*) echo "\t**** error \c">&2; continue;; 
esac 
echo "-------------- end --------------------------------\n">>$output 
done<$input 

echo "\n===================\nCreate output file: $output">&2 
 
 :em02: [b:7ce538da72]调用程序 router.cmd [/b:7ce538da72]
#!/usr/local/bin/expect -- 
# 登陆路由器的一个命令 Script for expact 
# 重要变量说明: 
# routerip=路由器telnet登陆ip地址 
# passwd1=路由器telnet登陆密码 
# passwd2=路由器超级用户密码 
# --------------------------------------------------- 
if $argc!=3 { 
send_user "Usage: router.cmd routerip passwd1 passwd2\n" 
exit 9 

set ROUTERIP [lindex $argv 0] 
set PASSWORD1 [lindex $argv 1] 
set PASSWORD2 [lindex $argv 2] 
set TIMEOUT 30 
set debug_flag 1 
send_user "##### BEGIN\n" 
spawn /usr/bin/telnet $ROUTERIP 23 

set timeout $TIMEOUT 
expect { 
timeout { 
send_user "Error 1: router ip can't arrived.\n" 
send_user "##### END\n\n" 
exit 1 

"refused" { 
send_user "Error 1: connection Failed.\n" 
send_user "##### END\n\n" 
exit 1 

"*assword: " { send "$PASSWORD1\r" } 


set timeout $TIMEOUT 
expect { 
timeout { 
send_user "\nError 2: invalid telnet password...\n" 
send_user "##### END\n\n" 
exit 2 

"*>" { send "enable\r" } 



set timeout $TIMEOUT 
expect { 
timeout { 
send_user "\nError 3: time out.\n" 
send_user "##### END\n\n" 
exit 3 

"Password: " { send "$PASSWORD2\r" } 



set timeout $TIMEOUT 
expect { 
timeout { 
send_user "\nError 4: Invalid password for super user...\n" 
send_user "##### END\n\n" 
exit 3 

"*#" { send "term len 0 \r" } 


expect "*#" 
send "show run\r" 
expect "*#" 
send "exit\r" 
send_user "\n##### END\n\n" 
exit 0

=============以上程序已经在 Sco Unix OSR5 里面测试通过

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网