以下是一个自动登录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编写并运行脚本,实现远程服务器操作的自动化,提升工作效率。