SecureCRT是VanDyke Software的一个商业SSH、Telnet客户端和虚拟终端软件,简单的说,是用于连接本地机器与远程服务器的工具,类似功能的工具有Putty、Xshell等。
SecureCRT支持的协议包括SSH1、SSH2、Telnet、RLogin、Serial、TAPI、Raw。这里记录SecureCRT对脚本的支持。
一、脚本创建方式
SecureCRT支持脚本的文件类型包括js、VBScript、Python等。
有两种创建脚本的方式:
- 录制脚本
将你在SecureCRT中的一系列操作录制成脚本 - 写脚本
可以选择自己熟悉的语言,降低学习成本,SecureCRT对不同语言脚本功能支持差异较小。
二、脚本执行方式
通常情况下,只需要点击Script->Run
,然后选择脚本执行即可。
如有更多需求,可以详细看下面的几种执行方式。
1、人工执行脚本
(1)Script->Run
选择脚本
(2)通过快捷键执行
通过Options
设置map a key
, 可以设置通过固定的快捷键组合可以执行指定的脚本
(3)通过点击button执行
view -> button bar
, 在button bar
右键设置button,可以定义不同的button,可以设置每
个button执行一个特定的脚本,以后每次点击button即可执行
2、自动化执行脚本
(1)对于一个已经保存的会话(session),可以配置一个logon script
, 实现每次连接这个会话时执行一个指定的脚本。
会话 --> 右键 --> 选择properties
设置 logon script
(2)命令行执行
进入SecureCRT.exe 所在目录,执行SecureCRT.exe /SCRIPT + 文件名
即可。
如有更多需求,可以添加参数 /Arg + 参数
。
对于已经保存(pre-configured)的会话,可以添加/S + 会话名
指定执行此脚本的会话;
对于临时会话(ad hoc connection),可以SecureCRT.exe /SCRIPT 文件名 协议名 /L username /PASSWORD pwd hostname
例如SecureCRT.exe /SCRIPT 文件名 /SSH2 /L user /PASSWORD pwd 192.168.0.1
三、 脚本功能
这里只是简单的记录脚本支持的功能,初学者如果需要具体使用的方法,可以参考http://www.cnblogs.com/OnOwnRoad/p/4893457.html ,里面的示例使用JS脚本。另外可以参见SecureCRT客户端中Help->Help Topics->Scripting
,介绍很详细。
1、 远程连接
(1) 对于已经保存的会话
crt.Session.Connect("/S hostname")
(2) 对于临时会话
crt.Session.Connect("/protocol /L username /PASSWORD pwd hostname")
(3) 多个连接 in tabs
一种方式:命令行执行加 /T
例如:
SecureCRT.exe /T /S "Redhat 8" /S "Cisco Pix" /S "SuseServer"
另一种方式:
在脚本中使用Session.ConnectInTab()
(4) 克隆会话
Tab.Clone()
(5) 打开一组会话,可以给每个会话发送消息
例如:
####### $language = "Python"
####### $interface = "1.0"
def main():
crt.Session.Connect("/S 10.142.113.224")
crt.Session.ConnectInTab("/S copy")
func()
def func():
tab1 = crt.GetTab(1)
tab1.Screen.Send("ls -l\r\n")
tab2 = crt.GetTab(2)
tab2.Screen.Send("df -h\r\n")
main()
2、 从远程设备读数据
- 等待特定的数据到达
crt.Screen.WaitForString() - 等待特定的数据中的一个到达
crt.Screen.WaitForStrings() - 只要有数据到达就开始捕获数据
crt.Screen.ReadString() - 监听按键事件
crt.Screen.WaitForKey - 监听游标移动
crt.Screen.WaitForCursor - 截获屏幕上特定位置出现的字符串
crt.Screen.Get
crt.Screen.Get2
3、 给远程设备发送数据
- 发送字符串
crt.Screen.Send() - 发送SecureCRT的内建命令
crt.Screen.SendSpecial()
4、 人机对话
- 选择文件
crt.Dialog.FileOpenDialog() - 弹出信息框
crt.Dialog.MessageBox() - 弹出提示用户输入的信息框
crt.Dialog.Prompt()
5、 记录日志
crt.Session.Log()
6、 传输文件
使用FileTransfer对象实现上传文件和下载文件
7、 存储数据到剪贴板
使用Clipboard对象存储数据到剪贴板,可以设置不同的格式(format)
8、 针对tab
- crt.GetActiveTab
- crt.GetScriptTab
- crt.GetTabCount
- 按照tab顺序按索引操作crt. GetTab(index)
9、 操作窗口(window)
- 检查活跃状态
- 设置标题
- 隐藏、最小化、最大化