首页主机资讯SecureCRT在Linux下的脚本编写教程

SecureCRT在Linux下的脚本编写教程

时间2026-01-19 22:35:03发布访客分类主机资讯浏览1459
导读:SecureCRT 在 Linux 下的脚本编写教程 一 环境准备与脚本类型 在 Linux 上,SecureCRT 支持通过内置脚本引擎直接编写自动化脚本,常用语言为 VBScript 与 Python。脚本通过 SecureCRT 菜...

SecureCRT 在 Linux 下的脚本编写教程

一 环境准备与脚本类型

  • Linux 上,SecureCRT 支持通过内置脚本引擎直接编写自动化脚本,常用语言为 VBScriptPython。脚本通过 SecureCRT 菜单 Script > New/Run 创建与执行,适合做登录后自动执行命令、批量巡检、交互式流程编排等。对于更通用的自动化(脱离 GUI、便于集成 CI/CD),也可使用 Python + Paramiko 直接 SSH 到设备执行命令。上述两种方式各有侧重:前者依赖 SecureCRT 会话与界面,后者更灵活、可编排。

二 快速上手 VBScript 脚本

  • 基本结构
    • #$language = “VBScript”#$interface = “1.0” 开头,入口为 Sub Main
    • 建议开启 crt.Screen.Synchronous = True,确保输出与输入同步,避免丢字符。
  • 常用 API
    • crt.Screen.Send “cmd” & chr(13):发送命令并回车。
    • crt.Screen.WaitForString “prompt”:等待指定提示符或字符串出现。
    • crt.Sleep ms:等待若干毫秒,配合网络/设备延时。
  • 示例 自动登录并执行命令
    #$language = "VBScript"
    #$interface = "1.0"
    
    Sub Main
        crt.Screen.Synchronous = True
    
        crt.Screen.Send "username" &
         chr(13)
        crt.Screen.WaitForString "Password:"
        crt.Screen.Send "password" &
         chr(13)
    
        crt.Screen.WaitForString "$ "   ' 等待命令提示符
    
        crt.Screen.Send "uname -a" &
         chr(13)
        crt.Screen.WaitForString "$ "
    
        crt.Screen.Send "df -h" &
         chr(13)
        crt.Screen.WaitForString "$ "
    
        crt.Screen.Synchronous = False
    End Sub
    
  • 运行方式
    • 在 SecureCRT 中打开会话,菜单 Script > Run,选择上述脚本即可。

三 使用 Python 脚本

  • 适用场景
    • 需要更强的逻辑处理、与 CI/CD 集成、或脱离 SecureCRT GUI 执行时,优先使用 Python + Paramiko 建立 SSH 会话、执行命令并获取结果。
  • 示例 基于 Paramiko 的 SSH 自动化
    import paramiko, time
    
    host = "192.0.2.10"
    port = 22
    user = "admin"
    pwd  = "P@ssw0rd"
    
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname=host, port=port, username=user, password=pwd, timeout=10)
    
    cmds = ["uname -a", "df -h", "uptime"]
    for c in cmds:
        stdin, stdout, stderr = ssh.exec_command(c, timeout=30)
        print(f"--- {
    c}
         ---")
        print(stdout.read().decode("utf-8", errors="ignore"), end="")
        err = stderr.read().decode("utf-8", errors="ignore")
        if err:
            print("STDERR:", err, end="")
    
    ssh.close()
    
  • 说明
    • 该方式不依赖 SecureCRT 的脚本引擎,可在服务器/容器/CI 环境直接运行,便于规模化与统一治理。

四 登录即自动执行与批量任务

  • 登录后自动执行命令
    • 在会话属性中配置:进入 Options > Global Options > Default Session(或编辑具体会话),在 Connection > Logon Actions 勾选 Auto Login,并在 StartupSend string 填入需要在登录后立即发送的命令(如 bash 或初始化命令)。也可在会话的 Script 页签指定连接后自动运行的脚本文件,实现登录即执行固定流程。
  • 批量处理多台设备
    • 创建多个会话(每个会话对应一台设备),为每个会话配置相同的登录动作或自动运行脚本;或使用 SecureCRT 的脚本能力循环连接多个主机、执行命令、收集输出。对于大规模场景,可结合 Ansible 等自动化工具进行编排,SecureCRT 更适合作为终端交互与人工介入的“最后一公里”。

五 实战技巧与排错

  • 提示符识别与同步
    • 不同系统/设备提示符不同(如 $#=> )。脚本中用 WaitForString 精确等待目标提示符,必要时配合正则或更独特的字符串,避免误判。开启 Synchronous 可显著降低丢字符风险。
  • 日志与错误处理
    • 建议开启会话日志,便于审计与回溯;在脚本中加入超时与重试逻辑,对关键步骤检查返回码或关键字,失败时可 crt.Dialog.MessageBox 提示或写入日志后安全退出。
  • 编码与显示
    • 如出现中文乱码,优先在会话属性中设置正确的 Character encoding(如 UTF-8),并确保远端环境的 LANG/LC_CTYPE 与之匹配,再执行脚本。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SecureCRT在Linux下的脚本编写教程
本文地址: https://pptw.com/jishu/786305.html
Linux SecureCRT连接断开怎么办 Linux SecureCRT插件安装与使用

游客 回复需填写必要信息