linux

SecureCRT怎样实现自动化运维

小樊
45
2025-11-14 10:12:08
栏目: 编程语言

SecureCRT自动化运维实战指南

一 核心思路与适用场景

二 快速落地步骤

三 示例脚本与命令

# $language = "Python"
# $interface = "1.0"

import os, datetime

def main():
    crt.Screen.Synchronous = True
    host = crt.Dialog.Prompt("请输入设备IP或主机名:", "连接", "")
    if not host:
        return

    # 连接(可按需改为 SSH)
    tab = crt.Session.Connect(f"/telnet {host}")
    if not tab:
        crt.Dialog.MessageBox("连接失败")
        return

    # 登录自动化
    tab.Screen.WaitForString("Username:")
    tab.Screen.Send("admin\r")
    tab.Screen.WaitForString("Password:")
    tab.Screen.Send("P@ssw0rd\r")

    # 进入特权模式(按设备提示符调整)
    tab.Screen.WaitForString(">")
    tab.Screen.Send("enable\r")
    tab.Screen.WaitForString("Password:")
    tab.Screen.Send("EnablePass\r")
    tab.Screen.WaitForString("#")

    # 执行命令
    tab.Screen.Send("terminal length 0\r")
    tab.Screen.WaitForString("#")
    tab.Screen.Send("show version\r")
    tab.Screen.WaitForString("#")

    # 保存日志
    log_dir = r"C:\securecrt\logs"
    os.makedirs(log_dir, exist_ok=True)
    ts = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
    log_file = os.path.join(log_dir, f"{host}_{ts}.log")
    tab.Session.LogFileName = log_file
    tab.Session.Log(True)

    crt.Dialog.MessageBox(f"完成,日志:{log_file}")

main()

四 批量与无人值守实践

五 安全与合规建议

0
看了该问题的人还看了