SecureCRT 脚本使用笔记


SecureCRTSecureCRTSecureCRTSecureCRT 使 用笔 记 版本 :20110315 v0.4 作者: gyhong gyh9711@163.com 文档中 错别字较 多,请见 量 1.1.1.1. 介绍 无序 为什么 选择 Secure Crt 而较少 选择 putty ? 因*nix 系统下有 expect 工具, Windows 系统下也有 expect,但功能有所弱化,还好 windows 系统下 有 secure crt,其脚 本支持 vbs 功能, 因此功能 也非常强 大。且具 备一些在 *nix 系统下 较难实现 的功能, 如 与 excel/access 等结合 使用。 做为一 名系统维 护人员, 系统检查 是一项重 复枯燥的 工作,具 备一点程 序能力, 将重复工 作定时任 务化 , 是一种 去除枯燥 工作的有 效解决办 法 。或许有 人说 ,现在的 网管软件 非常强大 ,基本用 不着动手 去做开发 ? 但在实 际工作当 中 ,经常会 发现 ,领导的 需求 /新系统 的部署会 打乱网管 软件的种 种强大 ,更可恶 是 ,偶尔 有可能 会发现包 括大厂家 的出名网 管软件, 都可能存 在一些可 笑的 BUG。。。 1.1.1.1.1.1.1.1.功能 功能 功能 功能 2011-3-15 可下载 到最新破 解版本 6.7 www.verycd.com 本文档 为学习笔 记。使用 破解软件 做测试, 不代表本 人提昌使 用盗版软 件。 2.2.2.2. 配置 2.1.2.1.2.1.2.1.Solairs Solairs Solairs Solairs 配置支持 配置支持 配置支持 配置支持 vivivivi 2.2.2.2.2.2.2.2.窗口可显示更多日志信息 窗口可显示更多日志信息 窗口可显示更多日志信息 窗口可显示更多日志信息 参考图 片上: 注:如 上表示窗 口最多可 滚动查看 到最近 5000 行信息 ,更多 即建议 启动记 录日志功 能 3.3.3.3. 程序 3.1.3.1.3.1.3.1.启动工具启动工具启动工具启动工具 3.2.3.2.3.2.3.2.CRTCRTCRTCRT OLE OLE OLE OLE 调用调用调用调用 3.2.1.3.2.1.3.2.1.3.2.1. 语法要求 3.2.2.3.2.2.3.2.2.3.2.2. 功能扩展 3.2.2.1.3.2.2.1.3.2.2.1.3.2.2.1. 自动识别系统提示符模块设计自动识别系统提示符模块设计自动识别系统提示符模块设计自动识别系统提示符模块设计 为什么 要设计这 一模块 :有日常 工作中 ,由于维 护系统非 常多 ,发现很 多 UNIX/LINUX 等系统 命令行登 录 后,提 示的 prompt 符号完 全不同, 或者是转 换 shell 后,提 示符也随 着变动。 此设计就 是解决这 一问,使 程序具 有较好兼 容性,不 必去考虑 这方面的 问题。 同时解 决另外一 个问题: vmstat / sar 等命令 或者程序 ,执行时 间不可预 测,如何 解决? 简明: 程序使 用到 vbs 类对crt ole 程序进 行简单封 装 3.3.3.3.3.3.3.3.VBS VBS VBS VBS 实用代码与技术 实用代码与技术 实用代码与技术 实用代码与技术 3.3.1.3.3.1.3.3.1.3.3.1. 文件读写 3.3.2.3.3.2.3.3.2.3.3.2. 控制 ExcelExcelExcelExcel常见方法 注:此资料 来源于网 络 ((((一))))使用动 态创建的 方法 首先创 建 Excel对象, 使用 ComObj:::: oExcel====CreateObject(((("Excel.Application")))) 1111))))显示当 前窗口: oExcel.Visible====True 2222))))更改 Excel标题栏 : oExcel.Caption===="应用程 序调用 MicrosoftExcel" 3333))))添加新 工作 簿: oExcel.WorkBooks.Add 4444))))打开已 存在的工 作簿: oExcel.WorkBooks.Open(((("C:\Excel\Demo.xls")))) 5555))))设置第 2个工作 表为活动 工作表: oExcel.WorkSheets((((2222).).).).Activate 或 oExcel.WorksSheets(((("Sheet2").).).).Activate 6666))))给单元 格赋值: oExcel.Cells((((1111,,,,4444).).).).Value===="第一行 第四列 " 7777))))设置指 定列的宽 度(单位 :字符个 数 ),以第 一列为例 : oExcel.ActiveSheet.Columns((((1111).).).).ColumnsWidth====5555 8888))))设置指 定行的高 度(单位 :磅 )(1磅= 0.035厘米 ),以第 二行为例 : oExcel.ActiveSheet.Rows((((2222).).).).RowHeight====1111////0.0350.0350.0350.035'1厘米 9999))))在第 8行之前 插入分页 符: oExcel.WorkSheets((((1111).).).).Rows((((8888).).).).PageBreak====1111 10101010))))在第 8列之前 删除分页 符: oExcel.ActiveSheet.Columns((((4444).).).).PageBreak====0000 11111111))))指定边 框线宽度 : oExcel.ActiveSheet.Range(((("B3:D4").).).).Borders((((2222).).).).Weight====3333 1-1-1-1-左2-2-2-2-右3-3-3-3-顶4-4-4-4-底5-5-5-5-斜((((\\\\))))6-6-6-6-斜((((////)))) 12121212))))清除第 一行第四 列单元格 公式: oExcel.ActiveSheet.Cells((((1111,,,,4444).).).).ClearContents 13131313))))设置第 一行字体 属性: oExcel.ActiveSheet.Rows((((1111).).).).Font.Name===="隶书 " oExcel.ActiveSheet.Rows((((1111).).).).Font.Color====clBlue oExcel.ActiveSheet.Rows((((1111).).).).Font.Bold====True oExcel.ActiveSheet.Rows((((1111).).).).Font.UnderLine====True 14141414))))进行页 面设置: a.页眉: oExcel.ActiveSheet.PageSetup.CenterHeader===="报表演 示 " b.页脚: oExcel.ActiveSheet.PageSetup.CenterFooter===="第&P页" c.页眉到 顶端边距 2cm: oExcel.ActiveSheet.PageSetup.HeaderMargin====2222////0.0350.0350.0350.035 d.页脚到 底端边距 3cm: oExcel.ActiveSheet.PageSetup.HeaderMargin====3333////0.0350.0350.0350.035 e.顶边距 2cm: oExcel.ActiveSheet.PageSetup.TopMargin====2222////0.0350.0350.0350.035 f.底边距 2cm: oExcel.ActiveSheet.PageSetup.BottomMargin====2222////0.0350.0350.0350.035 g.左边距 2cm: oExcel.ActiveSheet.PageSetup.LeftMargin====2222////0.0350.0350.0350.035 h.右边距 2cm: oExcel.ActiveSheet.PageSetup.RightMargin====2222////0.0350.0350.0350.035 i.页面水 平居中: oExcel.ActiveSheet.PageSetup.CenterHorizontally====2222////0.0350.0350.0350.035 j.页面垂 直居中: oExcel.ActiveSheet.PageSetup.CenterVertically====2222////0.0350.0350.0350.035 k.打印单 元格网线 : oExcel.ActiveSheet.PageSetup.PrintGridLines====True 15151515))))拷贝操 作: a.拷贝整 个工作表 : oExcel.ActiveSheet.Used.Range.Copy b.拷贝指 定区域: oExcel.ActiveSheet.Range(((("A1:E2").).).).Copy c.从A1位置开 始粘贴: oExcel.ActiveSheet.Range.(((("A1").).).).PasteSpecial d.从文件 尾部开始 粘贴: oExcel.ActiveSheet.Range.PasteSpecial 16161616))))插入一 行或一列 : a.oExcel.ActiveSheet.Rows((((2222).).).).Insert b.oExcel.ActiveSheet.Columns((((1111).).).).Insert 17171717))))删除一 行或一列 : a.oExcel.ActiveSheet.Rows((((2222).).).).Delete b.oExcel.ActiveSheet.Columns((((1111).).).).Delete 18181818))))打印预 览工作表 : oExcel.ActiveSheet.PrintPreview 19191919))))打印输 出工作表 : oExcel.ActiveSheet.PrintOut 20202020))))工作表 保存: ifnotoExcel.ActiveWorkBook.Savedthen oExcel.ActiveSheet.PrintPreview 21212121))))工作表 另存为: oExcel.SaveAs(((("C:\Excel\Demo1.xls")))) 22222222))))放弃存 盘: oExcel.ActiveWorkBook.Saved====True 23232323))))关闭工 作簿: oExcel.WorkBooks.Close 24242424))))退出 Excel: oExcel.Quit ((((二))))使用 VBS控制 Excle二维图 1111)选择 当第一个 工作薄第 一个工作 表 setSheet====oExcel.Workbooks((((1111).).).).Worksheets((((1111)))) 2222)增加 一个二维 图 achart====oSheet.chartobjects.add((((100100100100,,,,100100100100,,,,200200200200,,,,200200200200)))) 3333)选择 二维图的 形态 achart.chart.charttype====4444 4444)给二 维图赋值 setseries====achart.chart.seriescollection range===="sheet1!r2c3:r3c9" series.addrange,,,,true 5555)加上 二维图的 标题 achart.Chart.HasTitle====True achart.Chart.ChartTitle.Characters.Text===="Excle二维图 " 6666)改变 二维图的 标题字体 大小 achart.Chart.ChartTitle.Font.size====18181818 7777)给二 维图加下 标说明 achart.Chart.Axes((((xlCategory,,,,xlPrimary).).).).HasTitle====True achart.Chart.Axes((((xlCategory,,,,xlPrimary).).).).AxisTitle.Characters.Text===="下标说 明 " 8888)给二 维图加左 标说明 achart.Chart.Axes((((xlValue,,,,xlPrimary).).).).HasTitle====True achart.Chart.Axes((((xlValue,,,,xlPrimary).).).).AxisTitle.Characters.Text===="左标说 明 " 9999)给二 维图加右 标说明 achart.Chart.Axes((((xlValue,,,,xlSecondary).).).).HasTitle====True achart.Chart.Axes((((xlValue,,,,xlSecondary).).).).AxisTitle.Characters.Text===="右标说 明 " 10101010)改变 二维图的 显示区大 小 achart.Chart.PlotArea.Left====5555 achart.Chart.PlotArea.Width====223223223223 achart.Chart.PlotArea.Height====108108108108 4.4.4.4. PYTHONPYTHONPYTHONPYTHON 脚本 【6.6 6.6 6.6 6.6 版本及以上版本才支持】 测试结 果; 6.6.1 版本中 :不支持 中文 ,,则脚 本中不能 出现中文 6.7 版本: 支持中文 备注、提 示等 http://www.vandyke.com/support/securecrt/python_examples.html 4.1.4.1.4.1.4.1.脚本基本规则 脚本基本规则 脚本基本规则 脚本基本规则 � 脚本名 称 :文件名 .py � 文件要 求格式 文件开 头,需要 注明:添 加如上两 行 #$language="Python" #$interface="1.0" defdefdefdefmain():():():(): #DisplaySecureCRT'sversion crt....Dialog....MessageBox(((("SecureCRTversionis:"++++crt....Version)))) main()()()() 4.2.4.2.4.2.4.2.属性、函数介绍 属性、函数介绍 属性、函数介绍 属性、函数介绍 4.2.1.4.2.1.4.2.1.4.2.1.简要介绍 Crt 程序支 持属性及 方法说明 介绍 � 语法: crt.Property [ = expression ] crt.Method([arglist]) � 支持属 性及方法 � 属性功 能简要说 明: ActivePrinter :打印 Arguments: 处理外 部传入参 数 √ Clipboard: 支持将 数据复制 到系统粘 贴板 Diaglog: 交互对 话窗口 √ FileTransfer :文件传 送 Screen : 信息窗 口 √ ScriptFullName :脚本名 称等信息 √ Session : 连接信 息 √ Version : 相看 crt 版本 Window: 窗口 � 方法简 要说明 : ClearLastError : GetActiveTab : GetLastError : GetLasterrorMessage: GetScriptTab: GetTabCount: 取得当 前 Tab 数 OpenSessionConfiguration: 配置连 接 Quit: 退出 Sleep: 暂停【 空转函数 】 4.2.2.4.2.2.4.2.2.4.2.2.应用实例 4.2.2.1.4.2.2.1.4.2.2.1.4.2.2.1. 登 录实 例 登 录实 例 登 录实 例 登 录实 例 � 实例一 result====crt....Screen....WaitForStrings([([([(["foo",,,,"bar",,,,"quux",,,,"gee"],],],],10)))) crt....Dialog....MessageBox((((str((((result)))))))) ifififif((((result========3):):):): crt....Dialog....MessageBox(((("Gotquux!")))) ifififif((((result========0):):):): crt....Dialog....MessageBox(((("Timedout!")))) � 实例二 ifififif((((crt....Screen....WaitForString(((("ogin:",,,,10))))!=!=!=!=True):):):): crt....Dialog....MessageBox(((("Failedtodetectlogin!")))) 4.2.2.2.4.2.2.2.4.2.2.2.4.2.2.2. 文 件与 屏幕 信息 实例 文 件与 屏幕 信息 实例 文 件与 屏幕 信息 实例 文 件与 屏幕 信息 实例 #$language="Python" #$interface="1.0" importimportimportimportre importimportimportimportsys importimportimportimportos #ping"检查函 数 " #处理 netstat-rn输出信 息 defdefdefdefreport_data((((data):):):): #pattern='\d{}.\d{}.\d{}.\d{}' #re.search(pattern,s) f====open(((('C:\python.log',,,,"w")))) forforforforsinininindata:::: f....write((((s)))) f....close()()()() #crt.Dialog.MessageBox(s) #主程序 defdefdefdefmain():():():(): globalglobalglobalglobalobjtab errcode====0 trytrytrytry:::: objtab====crt....Session....ConnectInTab(((("/SSH2/PASSWORDHyzsj@11 eric@132.108.19.9",,,,True)))) exceptexceptexceptexceptScriptError:::: errcode====crt....GetLastError()()()() ififififerrcode!=!=!=!=0:::: crt....Dialog....MessageBox(((("connectionfialed")))) elseelseelseelse:::: objtab....Activate()()()() objtab....Screen....Synchronous====False crt....Dialog....MessageBox(((("程序开 始执行 !")))) crt....Dialog....MessageBox(((("当前行 :"++++str((((objtab....Screen....CurrentRow)))))))) #开始执 行 main()()()() objtab....Screen....Clear()()()() objtab....Screen....WaitForString((((">")))) row====objtab....Screen....CurrentRow objtab....Screen....Send(((("netstat-rn\r")))) objtab....Screen....WaitForString(((("eric@dszuas9o>")))) row1====objtab....Screen....CurrentRow column====objtab....Screen....Columns crt....Dialog....MessageBox(((("当前行 :"++++str((((objtab....Screen....CurrentRow)))))))) #data=objtab.Screen.Get(1,1,row1,column) data1====objtab....Screen....Get2((((row,,,,1,,,,row1,,,,column))))#根据 \r\n自动 split成行 #crt.Dialog.MessageBox(data) report_data((((data1)))) objtab....Screen....Send(((("\r")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("exit\n")))) 4.2.2.3.4.2.2.3.4.2.2.3.4.2.2.3. Windows Windows Windows Windows 系 统中 直接 调用 系 统中 直接 调用 系 统中 直接 调用 系 统中 直接 调用 crt crt crt crt 脚 本建 立连 接【 原创 】 脚 本建 立连 接【 原创 】 脚 本建 立连 接【 原创 】 脚 本建 立连 接【 原创 】 说明: 此脚本 具备一些 实现功能 ,但程序 设计比较 粗糙 涵养知 识内容: � Pythone 函数使 用 � 操作系 统中如何 直接调用 crt 脚本 � Crt 脚本怎 么使用 BAT 批处理 脚本传入 “参数 ” � Crt 脚本中 如何根据 用户传入 参数建立 连接 � Crt 脚本中 如何实现 交互:则 自动执行 原先指定 命令 文件名 称 : crt_script_run.bat echo off "C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe" /TITLEBAR"CRT 项目:GYHONG" /NOMENU/NOTOOLBAR/SCRIPT D:\duty\bin\test.py /ARG 132.108.19.9 /ARG test /ARG password Python crt 脚本名 称 : test.py #$language="Python" #$interface="1.0" defdefdefdefcheck_arguments():():():(): #ThisscriptassumesthatSecureCRTwasrunwiththree #SecureCRT.exe/ARG132.108.19.9/ARGloginname/ARGpassword ififififcrt....Arguments....Count!=!=!=!=3:::: crt....Dialog....MessageBox(((("Uasge:iploginnamepassword")))) returnreturnreturnreturn crt....Dialog....MessageBox(((("ip:"++++crt....Arguments[[[[0])])])]) #crt.Dialog.MessageBox("login:"+crt.Arguments[1]) #crt.Dialog.MessageBox("passwd:"+crt.Arguments[2]) defdefdefdefexec_user_command((((user_command):):):): ifififif((((crt....Screen....WaitForString((((">",,,,3))))!=!=!=!=True):):):): crt....Screen....Send(((("exit\n")))) elseelseelseelse:::: crt....Screen....Send((((user_command++++"\n")))) defdefdefdefcrate_conn_session():():():(): errcode====0 trytrytrytry:::: crt....Session....Connect(((("/SSH2/PASSWORD"++++crt....Arguments[[[[2]+]+]+]+" "++++crt....Arguments[[[[1]+]+]+]+"@"++++crt....Arguments[[[[0],],],],True)))) exceptexceptexceptexceptScriptError:::: errcode====crt....GetLastError()()()() ififififerrcode!=!=!=!=0:::: crt....Dialog....MessageBox(((("connectionfialed")))) elseelseelseelse:::: crt....Dialog....MessageBox(((("connectionsucessfull")))) exec_user_command(((("uptime")))) exec_user_command(((("netstat-rn")))) exec_user_command(((("exit")))) #startrun check_arguments()()()() crate_conn_session()()()() 4.2.2.4.4.2.2.4.4.2.2.4.4.2.2.4. 知 识交 互实 例 知 识交 互实 例 知 识交 互实 例 知 识交 互实 例 result====crt....Screen....WaitForStrings([([([(["foo",,,,"bar",,,,"quux",,,,"gee"],],],],10)))) crt....Dialog....MessageBox((((str((((result)))))))) ifififif((((result========3):):):): crt....Dialog....MessageBox(((("Gotquux!")))) ifififif((((result========0):):):): crt....Dialog....MessageBox(((("Timedout!")))) 说明: 上面代码 ,根据反 回信息, 自动执行 相对应代 码 4.2.2.5.4.2.2.5.4.2.2.5.4.2.2.5. SSH2 SSH2 SSH2 SSH2 结合结合结合结合sftp sftp sftp sftp 使 用实 例【 原创 】 使 用实 例【 原创 】 使 用实 例【 原创 】 使 用实 例【 原创 】 功能说 明 : 建立一 个 ssh2 连接, 然后通过 这个连接 建立 sftp 连接, 在ssh2 连接中 执行任务 并产生日 志, sftp 自动取 下执行日 志 #$language="Python" #$interface="1.0" errcode====0 trytrytrytry:::: objtab====crt....Session....ConnectInTab(((("/SSH2/PASSWORDpassword eric@132.108.19.9",,,,True)))) exceptexceptexceptexceptScriptError:::: errcode====crt....GetLastError()()()() ififififerrcode!=!=!=!=0:::: crt....Dialog....MessageBox(((("connectionfialed")))) elseelseelseelse:::: crt....Dialog....MessageBox(((("connectionsucessfull")))) objtab....Activate()()()() objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("uptime>/tmp/uptime.log\n")))) objtab....Screen....WaitForString((((">")))) #startsftp sftpTab====objtab....ConnectSftp()()()() sftpTab....Activate()()()() sftpTab....Screen....Send(((("\r")))) sftpTab....Screen....WaitForString(((("sftp>")))) sftpTab....Screen....Send(((("lcdc:\\r")))) sftpTab....Screen....WaitForString(((("sftp>")))) sftpTab....Screen....Send(((("get/tmp/uptime.log\r")))) sftpTab....Screen....WaitForString(((("sftp>")))) sftpTab....Screen....Send(((("quit\r")))) #quittermsession objtab....Screen....Send(((("\n")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("rm-f/tmp/uptime.log\n")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("exit\n")))) 4.2.2.6.4.2.2.6.4.2.2.6.4.2.2.6. 结 果自 动提 示一 例 结 果自 动提 示一 例 结 果自 动提 示一 例 结 果自 动提 示一 例 测试结 果: 6.6.1 版本中 测试正常 ,但需要 将脚本中 全部中文 去除 6.7 版本中 : ReadString函数执 行有异常 #$language="Python" #$interface="1.0" importimportimportimportre importimportimportimportsys importimportimportimportos ip=[=[=[=["132.108.19.1",,,,"132.108.19.8",,,,"132.108.19.10"]]]] #ping"检查函 数 " # testing report: only by crt 6.6.1 no defdefdefdefcheck_ping((((ip):):):): globalglobalglobalglobalobjtab objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("ping "++++ip++++"\n")))) szOutput ====objtab....Screen....ReadString([([([(["alive",,,,"9o>"],],],],3)))) index ====objtab....Screen....MatchIndex #crt.Dialog.MessageBox("提示 " +ip ) ifififif((((index ========0):):):): crt....Dialog....MessageBox(((("Timed out!")))) elifelifelifelif((((index ========1):):):): crt....Dialog....MessageBox((((ip++++"[ping OK")))) elifelifelifelif((((index ========3):):):): crt....Dialog....MessageBox((((ip++++"[Found '>'")))) #主程序 defdefdefdefmain():():():(): globalglobalglobalglobalobjtab errcode ====0 trytrytrytry:::: objtab ====crt....Session....ConnectInTab(((("/SSH2 /PASSWORD Hyzsj@11 eric@132.108.19.9",,,,True)))) exceptexceptexceptexceptScriptError:::: errcode====crt....GetLastErrorGetLastErrorGetLastErrorGetLastError()()()() ififififerrcode !=!=!=!=0:::: crt....Dialog....MessageBox(((("connection fialed")))) elseelseelseelse:::: objtab....Activate()()()() crt....Dialog....MessageBox(((("程序开 始执行 !")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("\n")))) forforforfors ininininip:::: check_ping((((s)))) objtab....Screen....Send(((("\n")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("exit \n")))) #开始执 行 main()()()() 4.2.2.7.4.2.2.7.4.2.2.7.4.2.2.7. 调用调用调用调用web web web web 浏 览器 实例 浏 览器 实例 浏 览器 实例 浏 览器 实例 功能说 明: 先在 crt 中选择 信息,然 后执行此 脚本。则 自动登录 google 搜索选 择文本相 关信息 #$language="Python" #$interface="1.0" importimportimportimportSecureCRT importimportimportimportwebbrowser #sendtheselectedtexttotheclipboard crt....Clipboard....Text====crt....Screen....Selection #Extracttheselectedtextfromtheclipboardintoavariableas"Text" szSelection====crt....Clipboard....Text #NowsearchonGooglefortheinformation. g_szURL===="http://www.google.com/search?q="++++szSelection webbrowser....open((((g_szURL)))) 4.2.2.8.4.2.2.8.4.2.2.8.4.2.2.8. 日 志处 理实 例 日 志处 理实 例 日 志处 理实 例 日 志处 理实 例 4.3.4.3.4.3.4.3. 扩展功能 扩展功能 扩展功能 扩展功能 :Python :Python :Python :Python 包包包包 4.3.1.4.3.1.4.3.1.4.3.1.简单实例 1111 #$language="Python" #$interface="1.0" importimportimportimportre importimportimportimportsys importimportimportimportos ip=[=[=[=["132.108.19.1",,,,"132.108.19.8",,,,"132.108.19.10"]]]] errcode====0 trytrytrytry:::: objtab====crt....Session....ConnectInTab(((("/SSH2/PASSWORDHyzsj@11 eric@132.108.19.9",,,,True)))) exceptexceptexceptexceptScriptError:::: errcode====crt....GetLastError()()()() ififififerrcode!=!=!=!=0:::: crt....Dialog....MessageBox(((("connectionfialed")))) elseelseelseelse:::: objtab....Activate()()()() objtab....Screen....WaitForString((((">")))) forforforforsininininip:::: objtab....Screen....Send(((("ping"++++s++++"\n")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....WaitForString((((">")))) objtab....Screen....Send(((("exit\n")))) 4.3.2.4.3.2.4.3.2.4.3.2.外部文件使用 4.3.3.4.3.3.4.3.3.4.3.3.数据库使用 S 5.5.5.5. 案例 5.1.5.1.5.1.5.1.同是建立多个连接实例【原创】 同是建立多个连接实例【原创】 同是建立多个连接实例【原创】 同是建立多个连接实例【原创】 #$language="Python" #$interface="1.0" #主机配 置说明 : #分4个字段 : 主机 IP连接方 式 登录帐 号 登录密 码 ip_list=[=[=[=[ [[[["132.108.19.9",,,,"TELNET",,,,"eric",,,,"passwd@11"],],],], [[[["132.108.19.8",,,,"TELNET",,,,"eric",,,,"passwd@11"],],],], [[[["132.108.19.9",,,,"SSH2",,,,"eric",,,,"passwd@11"]]]] ]]]] defdefdefdefcreate_conn((((host):):):): ifififif((((host[[[[1]==]==]==]=="SSH2"):):):): crt....Session....ConnectInTab(((("/"++++host[[[[1]+]+]+]+"/PASSWORD"++++host[[[[3]+]+]+]+" "++++host[[[[2]+]+]+]+"@"++++host[[[[0],],],],True)))) elifelifelifelif((((host[[[[1]==]==]==]=="TELNET"):):):): tmp_host====crt....Session....ConnectInTab(((("/telnet"++++host[[[[0])])])]) tmp_host....Screen....WaitForString(((("ogin:")))) tmp_host....Screen....Send((((host[[[[2]+]+]+]+"\r");););); tmp_host....Screen....WaitForString(((("word:")))) tmp_host....Screen....Send((((host[[[[3]+]+]+]+"\r");););); forforforforsininininip_list:::: #crt.Dialog.MessageBox("连接 IP:"+s[0]) create_conn((((s)))) 5.2.5.2.5.2.5.2.UNIX/Linux UNIX/Linux UNIX/Linux UNIX/Linux 系统检查 系统检查 系统检查 系统检查 5.2.1.5.2.1.5.2.1.5.2.1.SolairsSolairsSolairsSolairs 5.2.2.5.2.2.5.2.2.5.2.2.HpunixHpunixHpunixHpunix 5.2.3.5.2.3.5.2.3.5.2.3.RedhatRedhatRedhatRedhat 5.2.4.5.2.4.5.2.4.5.2.4.ubuntnubuntnubuntnubuntn 5.3.5.3.5.3.5.3.网络设备 网络设备 网络设备 网络设备 5.3.1.5.3.1.5.3.1.5.3.1.思科 5.3.2.5.3.2.5.3.2.5.3.2.华为 5.3.3.5.3.3.5.3.3.5.3.3.H3cH3cH3cH3c 5.3.4.5.3.4.5.3.4.5.3.4.netscreennetscreennetscreennetscreen 6.6.6.6. FQAFQAFQAFQA
还剩17页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

benbow

贡献于2012-08-28

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf