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

网络 网络管理
下面我们对TCL/EXPECT脚本完成telnet批处理的代码进行了介绍。那么通过文章内容,我们能对这个过程有一个具体的了解。

想要完成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中。之所以采用全局变量,是因为这些值使用比较广泛,但在不同设备中都不相同。使用全局变量可以方便修改。

代码如下:

#************************************************  
# telnet login routine  
#  
# @PARAMS  
# ipaddr - remote device ip address  
# user   - user name to login in  
# passwd - login password  
#  
# @RETURN  
# spawn_id if login success, otherwise 0  
#************************************************  
 proc login   
{  
 ipaddr user passwd  
 }  
 
{  
 global g_prompt g_usrPrompt g_pwdPrompt  
 
  spawn telnet $ipaddr  
  expect   
 {  
  "$g_usrPrompt"   
  {  
   exp_send "$user\r\n"  
    exp_continue  
   }  
  "$g_pwdPrompt"   
  {  
   exp_send "$passwd\r\n"  
    exp_continue  
   }  
  -ex "$g_prompt"   
  {  
   dbgLog "Login Successful\n"  
    return $spawn_id  
   }  
  timeout   
  {  
   send_user "timeout"  
    return 0  
   }  
 }  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.

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

责任编辑:佟健 来源: csdn.net
相关推荐

2010-07-16 10:42:14

telnet批处理

2010-07-16 11:23:06

Telnet客户端

2010-08-27 14:54:21

DB2批处理脚本

2009-12-09 10:01:41

ibmdwShell刀片服务器

2021-05-11 12:46:32

OpenSSLTelnet

2010-05-12 16:52:11

Oracle备份工具

2010-07-22 12:54:15

开启telnet服务

2020-08-04 10:03:03

Python开发语言

2010-07-16 10:31:02

Batch Telne

2010-12-23 14:46:08

expect脚本

2013-12-09 10:06:50

Java批处理Java

2010-07-26 10:29:02

2010-07-27 15:09:31

2024-08-14 08:11:41

2020-12-11 11:26:47

Spring批处理重试

2013-02-22 14:35:38

2012-12-28 14:32:34

Android开发Handler异步处理

2016-10-13 09:05:30

Windows 10DOS定时关机

2010-07-27 15:39:32

telnet smtp

2010-07-22 12:19:07

点赞
收藏

51CTO技术栈公众号