securecrt運行腳本,SecureCRT 使用python腳本

 2023-11-07 阅读 29 评论 0

摘要:轉自:http://www.codeweblog.com/securecrt-python/ 學完python后需要學以致用,但平時還真沒有這個環境,也不搞自動化,但語言這玩意必需要用,就拿secureCRT來練手吧,也算是和工作擦點邊對話框加按扭 CONFIRM_REPLACE = "&

轉自:http://www.codeweblog.com/securecrt-python/

學完python后需要學以致用,但平時還真沒有這個環境,也不搞自動化,但語言這玩意必需要用,就拿secureCRT來練手吧,也算是和工作擦點邊

對話框加按扭
CONFIRM_REPLACE = """\                                                                    #為數不多的button判斷
Do you want to replace the contents of "%(FILE)s" with the selected text? Yes = overwriteNo = appendCancel = end script"""
message = CONFIRM_REPLACE % { 'FILE' : filename }prompt = "Replace contents"buttons = BUTTON_YESNOCANCELresult = crt.Dialog.MessageBox(message, prompt, buttons)
if result == IDYES:fileMode = "w"
elif result == IDNO:fileMode = "a"

對話框取值

 crt.Dialog.Prompt(                                                                        #超級有用的在用戶這獲取數據的方式"Save selected text to file:","SecureCRT - Save Selected Text To File","MyFile.txt")

獲取log文件名在SecureCRT

tab = crt.GetScriptTab()
tab.Session.LogFileName                                                                     #如果在CRT中設置了log文件名,這個函數可以把它讀取出來
可以直接取到log的文件名

獲取系統當前的前綴名

SCRIPT_TAB = crt.GetScriptTab()
rowIndex = SCRIPT_TAB.Screen.CurrentRow
colIndex = SCRIPT_TAB.Screen.CurrentColumn - 1
prompt = SCRIPT_TAB.Screen.Get(rowIndex, 0, rowIndex, colIndex)                              #獲取當前行,當前列的數據,即該服務器的前綴,與waitfor配套
prompt = prompt.strip()

獲取打印值

def CaptureOutputOfCommand(command, prompt):if not crt.Session.Connected:return "[ERROR: Not Connected.]"# First, send the command to the remote.SCRIPT_TAB.Screen.Send(command + '\r')                                                 #輸入命令 cmmand 然后回車# Second, wait for the carriage return to be echoed by the remote device.# This allows us to capture only the output of the command, not the line# on which the command was issued (which would include the prompt + cmd).# If you want to capture the command that was issued, simply comment out# the following line of code.SCRIPT_TAB.Screen.WaitForString('\r')                                                  #等待命令輸完后,服務器給的回應,這樣可以不是獲取行,而是獲取輸出# Now that the command has been sent, use Screen.ReadString to capture# all the data that is received up to the point at which the shell# prompt appears (the captured data does not include the shell prompt).return SCRIPT_TAB.Screen.ReadString(prompt)                                            #獲取直到prompt出現時的所有數據

屏幕取詞

filename = os.path.join(os.path.expanduser('~'), 'output.txt')                                 #~/output.txt
fp = open(filename, "wb+")
screenrow = crt.Screen.CurrentRow - 1
readline = crt.Screen.Get(screenrow, 1, screenrow, 20)                                         #把當前行的1~20個字符取出來
fp.write(readline + os.linesep)                                                                #把取出的那一行加行尾符寫到文件中

寫到excel

import os
import csv                                                                                     #excel module
fileobj = open(filename, 'wb')
worksheet = csv.writer(fileobj)
worksheet.writerow(items[:2])
fileobj.close(

連接

SSH:
cmd = "/SSH2 /L %s /PASSWORD %s /C 3DES /M MD5 %s" % (user, passwd, host)
crt.Session.Connect(cmd)                                                                        #ssh -L user password host
Telnet:
crt.Session.Connect("/TELNET 127.0.0.1 2034")                                                   # telnet 127.0.0.1:2034
crt.Session.Connect("/S \"" + session + "\"")                                                   #如果這個session在CRT里存在,無論是Telnet還是SSH都能連

調試工具 CRT中的print

crt.Dialog.MessageBox("Nothing to save!")

參考:

http://www.vandyke.com/support/securecrt/python_examples.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/168842.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息