温馨提示×

ubuntu securecrt如何设置脚本执行

小樊
35
2025-11-30 11:47:49
栏目: 智能运维

Ubuntu 上 SecureCRT 脚本执行设置指南

一 前置准备

  • Ubuntu 上安装 Wine,然后使用 Wine 安装 SecureCRT(.exe 安装包)。安装完成后可通过命令启动:wine “C:\Program Files\VanDyke Software\SecureCRT\SecureCRT.exe”。若遇到中文乱码,在会话的 Terminal → Appearance 将字符编码设为 UTF-8。以上步骤确保你在 Ubuntu 桌面环境中能正常使用 SecureCRT 的 GUI 与脚本功能。

二 方式一 登录后自动执行服务器上的脚本

  • 将脚本上传到目标服务器(可用 SecureCRT 的 SFTP 上传到如 /root/scripts/ 目录),并在服务器上赋权:chmod +x /root/scripts/your_script.sh。
  • 在 SecureCRT 中打开目标会话,进入 Options → Session Options → Connection → Logon Actions(不同版本可能位于 Terminal/BehaviorAutomate 页签,名称接近“登录操作/启动时发送字符串”):
    • 勾选 Auto Login(自动登录,如已配置密钥或保存密码可自动登入)。
    • Send string(s) 或等效输入框中填入要执行的命令,例如:/root/scripts/your_script.sh。
    • 如需等待命令提示符再继续,可追加等待字符串(如 $#),或勾选“等待提示符”类选项(不同版本名称略有差异)。
  • 保存会话。下次连接时,SecureCRT 会在登录完成后自动执行该脚本。若脚本需要 sudo 免密,请在服务器上配置好 NOPASSWD

三 方式二 使用 SecureCRT 内置脚本自动化交互 VBScript 示例

  • 在 SecureCRT 菜单选择 Script → Run,加载或编写脚本(SecureCRT 支持 VBScript 脚本,通过 crt.Screen 等对象与终端交互)。示例脚本(请替换实际用户名、密码与命令):
    #$language = "VBScript"
    Sub Main
        crt.Screen.Synchronous = True
        crt.Screen.Send "username" & vbCrLf
        crt.Screen.WaitForString "Password:"
        crt.Screen.Send "password" & vbCrLf
        crt.Screen.WaitForString "$"   ' 等待命令提示符
        crt.Screen.Send "uname -a" & vbCrLf
        crt.Screen.WaitForString "$"
        crt.Screen.Send "df -h" & vbCrLf
        crt.Screen.WaitForString "$"
    End Sub
    
  • 要点:
    • 使用 WaitForString 精确等待提示符或关键输出,避免“命令未回显/未就绪”导致发送过早。
    • 通过 crt.Screen.Send 发送命令并以 vbCrLf 回车结束。
    • 可在脚本中循环、条件判断、读取屏幕缓冲等,实现复杂自动化流程。

四 方式三 批量执行与日志审计

  • 批量处理思路:
    • 创建多个会话(每个会话对应一台主机),为每个会话配置相同的 登录动作/启动脚本,即可一键并发执行。
    • 在脚本或会话选项中启用 日志记录(Log File),将输出保存到文件,便于审计与回溯。
    • 结合 TCL/TK(SecureCRT 脚本支持)或外部自动化工具,编排多主机、多步骤任务流。
  • 若不使用 SecureCRT 的 GUI 自动化,也可在外部用 Python + Paramiko 直接 SSH 执行命令,更易集成 CI/CD 与大规模编排(但这已脱离 SecureCRT 本身)。

五 常见问题与排查

  • 中文乱码:在 Session Options → Terminal → Appearance → Character encoding 选择 UTF-8
  • 自动登录失败:确认用户名/密码或密钥已正确保存;如使用密钥,确保私钥权限为 600,并在会话属性中正确指定。
  • 命令未执行或执行过早:在脚本中用 WaitForString 等待明确的提示符(如 $#),必要时增加等待超时与重试逻辑。
  • 需要 sudo 权限:在服务器上配置 /etc/sudoersNOPASSWD,或在脚本中处理交互式 sudo(不推荐明文密码)。
  • 日志缺失:在会话或脚本中开启日志,并确认有写入权限与磁盘空间。

0