作家
登录

用TCL/EXPECT脚本实现telnet批处理

作者: 来源: 2012-06-22 01:16:23 阅读 我要评论

想要完成telnet批处理,其实方法有很多。那么我们这里可以通过一个TCL/EXPECT脚本来完成。下面我们就对这个过程进行一下介绍。这是一个简单的TCL/EXPECT脚本,完成telnet到远程设备的功能。通过这个例子,大家可以看到使用TCL/EXPECT脚本构造测试程序,是非常简洁的。

从今天开始,陆续把我所写的一些自动测试脚本贴上来,希望对初学者有所帮助。由于目前没有找好合适的服务器存放代码,所以代码先贴在blog的正文中,以后再提供完整的代码下载。

我telnet批处理测试脚本运行在debian linux下,使用/usr/bin/expect进行解释执行。为了简化处理,把一些常用的功能编写成函数,放在commonLib.exp文件中,其它脚本文件可以使用source commonLib.exp命令引用这些函数。

下面的函数完成telenet到目标机器并login。从其实现上大家可以看到tcl/expect编写测试脚本的简洁。

这个函数带有三个参数,分别是目标机器的IP地址ipaddr,登录用户名user和登录密码,telenet的端口号采用默认的23端口。

函数中使用了三个全局变量,g_prompt,g_usrPrompt和g_pwdPrompt,分别表示登录后的命令提示符,提示用户名输入的提示符,以及提示密码输入的提示符,这三个全局变量定义在global.exp中。之所以采用全局变量,是因为这些值使用比较广泛,但在不同设备中都不相同。使用全局变量可以方便修改。

代码如下:

  1. #************************************************  
  2. # telnet login routine  
  3. #  
  4. # @PARAMS  
  5. # ipaddr - remote device ip address  
  6. # user   - user name to login in  
  7. # passwd - login password  
  8. #  
  9. # @RETURN  
  10. # spawn_id if login success, otherwise 0  
  11. #************************************************  
  12.  proc login   
  13. {  
  14.  ipaddr user passwd  
  15.  }  
  16.  
  17. {  
  18.  global g_prompt g_usrPrompt g_pwdPrompt  
  19.  
  20.   spawn telnet $ipaddr  
  21.   expect   
  22.  {  
  23.   "$g_usrPrompt"   
  24.   {  
  25.    exp_send "$userrn"  
  26.     exp_continue  
  27.    }  
  28.   "$g_pwdPrompt"   
  29.   {  
  30.    exp_send "$passwdrn"  
  31.     exp_continue  
  32.    }  
  33.   -ex "$g_prompt"   
  34.   {  
  35.    dbgLog "Login Successfuln"  
  36.     return $spawn_id  
  37.    }  
  38.   timeout   
  39.   {  
  40.    send_user "timeout"  
  41.     return 0  
  42.    }  
  43.  }  

这样telent批处理的TCL/EXPECT脚本过程就完成了。


  推荐阅读

  telnet批处理的设计

由于工作需要,处理上百个机器也是常见的事情。这里我们主要介绍一下创建一个telnet批处理程序来帮助完成工作,那么这里我们为大家呈现了具体的代码。希望对大家有所帮助。首先做了一个批处理文件,iplist.bat,让它具>>>详细阅读


本文标题:用TCL/EXPECT脚本实现telnet批处理

地址:http://www.17bianji.com/xieyi/6526.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)