批量自动巡检脚本v1.0 -- 使用SecureCRT自动巡检脚本(JScript)

地址:http://hi.baidu.com/tuyah/blog/item/044dec11aea55218b8127b47.html/cmtid/f9fc9812b474bbc2c2fd78e5

 

路由器批量自动巡检脚本v1.0
最近更新版本下载:v2.1 (2009-5-22)
进去点freedownload即可等待30秒下载(2009-6-20)
具体更新内容请查看那原帖:
v1.1
v1.2 v1.3 v2.0 v2.1

2009-3-3
1.需要在data文件中输入要巡检设备的ip地址,端口,login用户名,login密码,
enable密码,并且以空格或制表隔开;
2.将巡检的设备保存成文件ip_log.txt;
3.如果列表中的设备不可达或者因为密码错误等原因登陆不上去,会产生日志信息,
保存在debug.txt文件中以便查阅;
4.可以自行在脚本中定义巡检需要输入的命令;

注意:
1.目前仅支持出login字样的登陆;
2.目前仅支持MORE翻页;
3.使用前先将bat文件中的crt路径改为本机的crt安装路径;
4.SecureCRT 5.0.5测试通过;

SecureCRT设置

====================需要巡检的设备放到data.txt文件中=================

192.168.1.1 23 admin admin admin
192.168.1.100 23 admin admin admin

==========================自动运行bat文件=========================

@echo off
rem 把这个路径改成crt的安装路径即可
"d:/Program Files/SecureCRT/SecureCRT.EXE" /SCRIPT xunjian.js

=====================JS脚本文件(xunjian.js)=========================

# $language = "JScript"
# $interface = "1.0"

//-------------------------------------------------
// Name: 自动巡检脚本
// date: 2009-3-2
// ver: 0.1
// author: 2楼水饺
//-------------------------------------------------
function main()
{
//================================================
//脚本启动项:
// 可以改动的有:debug开关--打开以后有提示和日志
//                cmd[x]命令集--要执行的命令
//================================================
//debug开关
var isdebug = true;

//定义要执行的命令
var cmd = new Array();
cmd[0] = "show run";
cmd[1] = "show ver";
cmd[2] = "show ip route";
cmd[3] = "show int"

//文档存放路径                                    
var DATA = "data.txt";
var debugfile = "debug.txt"; //这个是脚本的debug文件,脚本出错放在这里
var logfile; //每个设备一个show run文件名

//定义设备和设备参数存放的数组
var devices = new Array();
var params = new Array();

//定义循环变量
var i_cmd,i_device;

//其他变量定义
var mflag; //标记是否还有---more---
var re; //正则表达式

//定义文件对象
var fso, fso_data, data_fi, debug_fi;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso_data = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile(debugfile);
debug_fi = fso.OpenTextFile(debugfile, 2, true); //建立并打开脚本的debug文件

//将数据文件内容存到devices数组中,每一行作为一个设备
try
{
   data_fi = fso_data.OpenTextFile(DATA, 1, true); //打开数据文件
   devices = data_fi.ReadAll().split("/r/n"); //读取每一行
}
catch (E)
{
   if (isdebug)
   {
    crt.Dialog.MessageBox(DATA + " is empty, script terminated.", "Error", 16 | 0);
    writeLog(debug_fi, DATA + " is empty, script terminated.");
   }  
   crt.quit();
}

   //for (i=0; i<devices.length; i++)
   //{
   // crt.Dialog.MessageBox(devices[i], "test", 64 | 0);
   //}
if (isdebug)
{
   writeLog(debug_fi, "Script Start.");
}
//^^^^^^^^^^^^^^^脚本启动2009-3-3^^^^^^^^^^^^^^

//================================================
//根据devices数组中存的设备地址信息登陆设备
//并且将数据存入相应的文件,如果出错,则在日志
//中打印出错误信息,然后继续下一个设备操作
//================================================
for (i_device=0; i_device<devices.length; i_device++ )
{
   //读取各字段
   re = //s+/; //匹配空白符号(tab,空格,回车等等)一次或者多次
   params = devices[i_device].split(re);
    //for (i=0; i<params.length; i++)
    //{
    // crt.Dialog.MessageBox(params[i], "test", 64 | 0);
    //}

   //遇到空行
   if (params[0]=="")
   {
    continue;
   }
   //打开屏幕同步
   crt.screen.Synchronous = true;
  
   //自动连接
   if (!autoConnect(params[0], params[1], params[2], params[3], params[4]))
   {
    if (isdebug)
    {
     writeLog(debug_fi, params[0] + ":" + params[1] + " connect failed.");
     crt.Dialog.MessageBox(params[0] + ":" + params[1] + " connect failed.", "Warnning", 48 | 0);
    }
    continue;
   }
  
   //命名log文件,打开log,
   logfile = params[0] + "_log.txt";
   try
   {
    crt.Session.LogFileName = logfile;
    crt.Session.Log(1);   
   }
   catch (E)
   {  
    crt.Dialog.MessageBox(params(0) + " logging failed.", "Warnning", 48 | 0);
    writeLog(debug_fi, params[0] + " logging failed.");
    continue;
   }
  
   //执行命令
    //清屏,发送一堆回车先
   for (var i=0; i<5; i++)
   {
    crt.Screen.Send("/n");
    crt.Screen.WaitForStrings("#", 3);
   }
    //这个才是发送命令
   //re = /more/[i];
   for (i_cmd=0; i_cmd<cmd.length; i_cmd++)
   {
    crt.Screen.Send(cmd[i_cmd] + "/n");
    while(true)
    {
     mFlag = crt.Screen.WaitForStrings("MORE", 5);
     if (mFlag)
     {
      //crt.Sleep(1000);
      crt.Screen.Send(" ");
     }
     else
     {
      break;
     }
    }//end while
   }

   //断开连接
   crt.Session.Disconnect();

   //关闭屏幕同步
   crt.screen.Synchronous = false;

   //关闭log
   crt.Session.Log(0);

}
writeLog(debug_fi, "Script finished.");
crt.Dialog.MessageBox("Script finished.", "Script", 64 | 0);
//debug_fi.close;
crt.quit();
}


//-------------------------------------------------
// Name: writeLog,将脚本debug信息写入文件
// date: 2008-2-28
// ver: 1.0
//-------------------------------------------------
function writeLog(ts, str)
{
   var tmpTime = new Date();
   ts.WriteLine(tmpTime.toString() + "/t" + str);   
}

//-------------------------------------------------
// name: autoConnect,telnet登陆设备
// date: 2009-3-3
// ver: 1.0
//-------------------------------------------------
function autoConnect(ip, port, login, pass, enpass)
{
//连接设备
try
{
   crt.session.Connect("/TELNET " + ip + " " + port);
}
catch (E)
{
   return false;
}

if(!crt.Screen.WaitForStrings("ogin:", 5))
{
   crt.Screen.Send("/n");
   if (!crt.Screen.WaitForStrings("sername:", 5))
   {
    return false;
   }
}

// 输入用户名
crt.Screen.Send(login + "/n");
if(!crt.Screen.WaitForStrings("assword:", 5)){
   return false;
}

// 输入密码
crt.Screen.Send(pass + "/n");
if(!crt.Screen.WaitForStrings(">", 5)){
   return false;
}

// 进入enable模式
crt.Screen.Send("enable/n");
if(!crt.Screen.WaitForStrings("assword:", 5)){
   return false;
}  

// 输入enable密码
crt.Screen.Send(enpass + "/n");
if(!crt.Screen.WaitForStrings("#", 5)){
   return false;
}
  
return true;
}

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SecureCRT脚本使用VBScript语法。VBScript是一种微软开发的脚本语言,它是Visual Basic的一部分,主要用于Windows操作系统上的脚本编写。在SecureCRT中,VBScript语法可以用于编写自动脚本,实现自动化登录、执行命令、收集输出等功能。常用的VBScript语法包括变量定义、条件语句、循环语句、函数定义等。例如,以下是一个简单的VBScript脚本示例: ``` ' 定义变量 Dim strUsername, strPassword ' 输入用户名和密码 strUsername = "admin" strPassword = "password" ' 连接远程主机 crt.Session.Connect "/ssh2 /auth=password /user=" & strUsername & " /password=" & strPassword & " 192.168.1.1" ' 执行命令并收集输出 crt.Screen.Send "ls" & vbCr Do While crt.Screen.WaitForString("$") = 0 WScript.Sleep 100 Loop strOutput = crt.Screen.ReadString("$") ' 输出结果 MsgBox strOutput ``` 该脚本定义了两个变量strUsername和strPassword,然后使用这些变量连接到远程主机,并执行ls命令,最后将输出结果弹出消息框显示。 ### 回答2: SecureCRT 脚本可以使用多种编程语言编写,其中一种常用的是 VBScript(vbs)语言。VBScript 是一种微软开发的脚本语言,简单易学,同时也具有较强的处理能力。 SecureCRT 的 VBScript 常用语法包括: 1.创建一个新的 Session 对象 使用对象的 CreateObject 方法来创建一个新 Session 对象,语法如下: ``` Dim objSecureCRT, objSession Set objSecureCRT = CreateObject("SecureCRT.Application") Set objSession = objSecureCRT.Sessions.Add("/SSH2 /L user /PASSWORD password /C 3des /M hmac-sha1-96 /CN certificate /D ""directory"" hostname") ``` 其中 `/SSH2` 表示使用 SSH2 协议,`/L` 表示登录时使用的用户名,`/PASSWORD` 表示登录密码,`/C` 和 `/M` 分别表示加密算法和摘要算法, `/D` 表示工作目录,`hostname` 是要连接的主机名或IP地址。 2.向远程设备发送命令并获取返回结果 使用 Session 对象的 Send 和 WaitForString 方法向远程设备发送命令,并获取返回结果,语法如下: ``` objSession.Connect objSession.Send "command" & chr(13) strOutput = objSession.WaitForString("prompt") ``` 其中 `Connect` 方法用于连接远程设备,`Send` 方法用于向设备发送命令, `WaitForString` 方法用于等待设备返回结果,并将结果存储在 `strOutput` 变量中。 3.保存 SecureCRT 会话 使用 Session 对象的 Save 方法可以保存当前的 SecureCRT 会话,语法如下: ``` objSession.Save ``` 4.关闭 SecureCRT 会话 使用 Session 对象的 Close 方法可以关闭当前的 SecureCRT 会话,语法如下: ``` objSession.Close ``` 以上是 SecureCRT 脚本常用的 VBScript 语法,可以根据实际需求进行修改和扩展。同时,SecureCRT 还支持其他编程语言的脚本编写,例如 Perl、Python、JavaScript 等。 ### 回答3: SecureCRT是一种强大的终端模拟器,可以方便地与远程服务器进行通信。其中,SecureCRT脚本是一种用于自动化执行特定任务的代码,可以帮助用户提高工作效率。 SecureCRT脚本使用VBScript语言编写的,VBScript是一种 Visual Basic语言的轻量级版本。在SecureCRT脚本中,VBScript可用于创建变量、条件语句、循环结构、函数、模块等元素,可实现自动登录、自动执行命令、修改配置等Automate脚本,大大提高日常工作效率。 SecureCRT脚本中的VBScript语法包括以下几个方面: 1.十六进制表示 在SecureCRT脚本中,可以使用VBScript中的类似"CInt"、"CLng"、"CDbl"、"Hex"等来实现十进制和十六进制之间的转换。 2.正则表达式 正则表达式是一种用于匹配特定模式的语法,SecureCRT脚本也支持正则表达式。可以使用VBScript中的"RegExp"函数来实现正则表达式功能。 3.文件操作 SecureCRT脚本也支持文件操作,包括打开、保存、读取、写入文件等功能。可以使用VBScript中的“FileSystemObject”对象来实现文件操作功能。 4.网络通信 SecureCRT脚本中也支持网络通信,包括使用Telnet、SSH等协议访问远程服务器,并可实现自动化登录、执行命令等操作。 总的来说,SecureCRT脚本中的VBScript语法具有灵活性、可扩展性和易用性,可帮助用户实现各种自动化操作,提高工作效率,减少重复性劳动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值