secureCRT运行命令脚本

  之前写过VBS的secureCRT脚本, 功能太少了,改成python的

# $language = "python"
# $interface = "1.0"

#-----------------------------------------------------------------------------------
import os
import time

g_szConfigFile = "D:/Desktop/FTP/python3/secureCRT/test/info.txt"
g_szCommandFile = "D:/Desktop/FTP/python3/secureCRT/test/cmd.txt"
g_szDesktopFolder = "D:/Desktop"

def connectFun(szIPAddr, szUserName = "username", szPassWd = "password"):

    szSSH2cmd = "/SSH2 /L %s /PASSWORD %s %s" % (szUserName, szPassWd, szIPAddr)
    szTelnetcmd = "/Telnet %s" % (szIPAddr)
    result = False
    try:
        crt.Session.ConnectInTab(szSSH2cmd)
        result = True
    except:
        try:
            crt.Session.ConnectInTab(szTelnetcmd)
            crt.Screen.WaitForString("name")
            crt.Screen.Send(szUserName + "\r")
            crt.Screen.WaitForString("ass")
            crt.Screen.Send(szPassWd + "\r")
            result = True
        except:
            crt.Dialog.MessageBox(szIPAddr + " Login Failed!", "connect Failed")
            result = False
    
    return result

def readInfo(szFile):
    #crt.Dialog.MessageBox(szFile)
    if not os.path.exists(szFile):
        crt.Dialog.MessageBox("Can not find file", "No this File")
        return False, []

    objFile = open(szFile,'r')
    return True, objFile.readlines()

def execCMD(szCommandFile):
    bResult, listCMD = readInfo(szCommandFile)
    if bResult:
        for cmd in listCMD:
            crt.Screen.Send(cmd + "\r")
            while crt.Screen.WaitForString("ore-", 3):
                crt.Screen.Send(" ")

            crt.Screen.Send("\r\r\r")
        crt.Session.Disconnect()

#-----------------------------------------------------------------------------------
crt.Screen.Synchronous = True

pathDesktop = g_szDesktopFolder

bResult, listInfo = readInfo(g_szConfigFile)
time = time.strftime("%Y/%m/%d/%H-%M", time.localtime())
if bResult:
    for info in listInfo:
        info = info.strip('\n')
        if connectFun(info): 
            crt.Session.LogFileName = pathDesktop + "/logfile/" + time + "-"+ info + ".txt"
            crt.Session.Log(True)
            execCMD(g_szCommandFile)
            crt.Session.Log(False)
    crt.Dialog.MessageBox("Done!", "Good Job")

crt.Screen.Synchronous = False

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值