以下是一個自動登錄Debian服務器并執行基礎命令的Python腳本,包含注釋說明:
# $language = "python" # 指定腳本語言為Python
# $interface = "1.0" # 指定接口版本
import time # 用于添加延時,確保命令執行完成
def main():
# 關閉屏幕同步(避免命令輸出阻塞)
crt.Screen.Synchronous = False
# 定義登錄信息(替換為實際值)
user = "your_username"
passwd = "your_password"
ip = "192.168.1.100" # 替換為目標服務器IP
# 連接到服務器(SSH協議,端口默認22可省略)
connect_cmd = f"/SSH2 /L {user} /PASSWORD {passwd} {ip}"
crt.Session.ConnectInTab(connect_cmd) # 在新標簽頁打開會話
# 等待登錄提示(根據實際情況調整等待時間和提示符)
time.sleep(1) # 等待1秒,確保連接建立
crt.Screen.WaitForString("password:") # 等待密碼提示
crt.Screen.Send(passwd + "\r") # 發送密碼并按下回車
time.sleep(1) # 等待登錄完成
crt.Screen.WaitForString("# ") # 等待命令提示符(Debian默認root提示符為#)
# 執行命令(示例:查看系統信息)
crt.Screen.Send("uname -a\r") # 發送命令
time.sleep(1)
crt.Screen.WaitForString("# ")
crt.Screen.Send("df -h\r") # 查看磁盤空間
time.sleep(1)
crt.Screen.WaitForString("# ")
# 關閉會話
crt.Session.Disconnect()
# 執行主函數
main()
~/securecrt_scripts/
)。在目標會話中運行:
.py
腳本文件即可執行。調試腳本:
通過循環結構批量發送多個命令,例如:
commands = ["ls -l /tmp", "free -m", "uptime"]
for cmd in commands:
crt.Screen.Send(cmd + "\r")
time.sleep(1)
crt.Screen.WaitForString("# ")
自動保存會話輸出到日志文件,便于后續分析:
log_file = f"debian_session_{time.strftime('%Y%m%d_%H%M%S')}.log"
crt.Session.LogFileName = log_file
crt.Session.Log(True) # 開啟日志記錄
使用try-except
捕獲異常,避免腳本因錯誤中斷:
try:
crt.Screen.WaitForString("password:", timeout=5) # 設置5秒超時
crt.Screen.Send(passwd + "\r")
except:
crt.Dialog.MessageBox("錯誤", "等待密碼提示超時,請檢查網絡或提示符", 0x10) # 顯示錯誤消息框
crt.Session.Disconnect()
通過命令行參數傳遞動態值(如IP、用戶名),提高腳本復用性:
import sys
if len(sys.argv) < 2:
print("請傳入IP地址參數,例如:python script.py 192.168.1.100")
sys.exit(1)
ip = sys.argv[1] # 獲取第一個參數(IP地址)
運行時輸入:python script.py 192.168.1.100
chmod +x script.py
命令添加權限(僅Python腳本需要,VBScript無需此步)。通過以上步驟,您可以在Debian系統上使用SecureCRT編寫并運行腳本,實現遠程服務器操作的自動化,提升工作效率。