位置:首页 > 综合教程 > SecureCRT批量执行命令与脚本交互方法

SecureCRT批量执行命令与脚本交互方法

时间:2026-05-30  |  作者:318050  |  阅读:0

当需要在10台Linux服务器上同步执行df -huptime巡检命令时,逐个切换标签页敲命令很麻烦。

SecureCRT提供了两条实用的批量执行路径:一条是零配置的即时广播,另一条是可复用、带错误处理的Python脚本。两者都不需要额外安装依赖。

先看第一种最简单的方式。

SecureCRT怎么批量执行命令 SecureCRT脚本交互方法【步骤】

用Chat Window一键广播命令

打开SecureCRT,顶部菜单View → 勾选Chat Window,终端下方立即出现一个灰色输入框。

在Chat Window区域右键,选择Send Chat to All Sessions。这里有个关键前提:所有目标会话必须已经连接且处于激活状态(标签页呈高亮色)。

搞定之后,在Chat Window中输入df -h并回车,命令会同时发送至所有已连接会话,每台终端实时返回结果。

不过要注意,这种方式不保存历史记录,也不校验命令是否执行成功。它只适合那种无交互、低风险的瞬时巡检场景。

假如某台设备断连了,或者卡在密码提示符,命令就会静默失败,连个报错提示都没有。简单归简单,局限性也明显。

用Python脚本自动登录+批量执行

如果你需要更可靠、可重复的方案,那就得请出Python脚本了。这里提供两种构建思路。

方法一:录制后编辑成可靠脚本

先手动连一台典型服务器,执行hostnamedf -hexit,全程用Script → Start Recording把操作录下来。停止录制后保存为audit.py

接着用文本编辑器打开,把硬编码的IP、密码替换成变量,再插入crt.Screen.WaitForString("$ ", 15)等待提示符——这一步很关键,能避免命令堆积发送导致执行顺序混乱。

方法二:直接编写最小可用脚本

如果你习惯手写,可以直接上这个模板:

# $language = "Python3"
# $interface = "1.0"
import time
def main():
    tab = crt.GetScriptTab()
    tab.Screen.Synchronous = True
    tab.Screen.Send("hostnamern")
    tab.Screen.WaitForString("$ ", 10)
    tab.Screen.Send("df -hrn")
    tab.Screen.WaitForString("$ ", 10)
main()

这里有个容易踩的坑:必须将脚本首行$language设为"Python3",否则SecureCRT会调用内置的Python 2.7,导致f-string这类语法直接报错。

让脚本随会话自动运行

脚本写好之后,如果能让它随会话自动触发,那才叫真正的解放双手。操作步骤也不复杂:

  • 第一步:在SecureCRT中打开一个已保存的会话(比如“web-server-01”)→ 右键 → Properties → Logon Actions。
  • 第二步:勾选“Logon script”,点击Browse选择你写好的audit.py文件 → 点击OK保存会话配置。
  • 第三步:双击该会话图标重新连接 → 脚本自动触发,完成登录→等待提示符→发送命令→等待→退出全流程。
  • 第四步:对其他会话重复第一步和第二步。全部配置完成后,可以批量启动这些会话:在会话管理器中按住Ctrl多选,右键选择Connect。这样每台设备会独立运行脚本,互不干扰。

需要提醒的是,这个方案要求每台设备登录后的提示符一致(比如都是$ )。如果混用了root用户(提示符为# ),就得在脚本里增加分支判断,否则WaitForString("$ ")会一直等下去直到超时。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多