在Debian系统上使用SecureCRT编写脚本前,需完成以下基础准备:
SecureCRT支持多种脚本语言,适用于不同场景:
sudo apt install python3),适合复杂逻辑(如数据处理、模块化脚本);Alt+F11快速打开脚本编辑器;auto_login.py)。' 定义变量
Dim strUsername, strPassword, strHost
strUsername = "admin"
strPassword = "your_password"
strHost = "192.168.1.100"
' 连接远程主机
crt.Session.Connect "/SSH2 /L " & strUsername & " /PASSWORD " & strPassword & " " & strHost
' 等待命令提示符(根据实际情况调整)
crt.Screen.WaitForString "#"
' 发送命令并等待完成
crt.Screen.Send "ls -l" & vbCr
crt.Screen.WaitForString "#"
' 关闭会话
crt.Session.Disconnect
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
# 定义变量
username = "admin"
password = "your_password"
hosts = ["192.168.1.100", "192.168.1.101"]
commands = ["ls -l", "df -h", "uptime"]
# 遍历主机列表
for host in hosts:
# 连接主机(SecureCRT API)
crt.Session.ConnectInTab(f"/SSH2 /L {username} /PASSWORD {password} {host}")
time.sleep(2) # 等待连接建立
# 发送命令并等待提示符
crt.Screen.Send("\r")
crt.Screen.WaitForString("#")
# 执行命令
for cmd in commands:
crt.Screen.Send(f"{cmd}\r")
time.sleep(1) # 等待命令执行
crt.Screen.WaitForString("#")
# 关闭标签页
crt.Session.Close()
若SecureCRT未满足需求,可使用Debian自带的expect工具编写脚本:
#!/usr/bin/expect
# 安装expect:sudo apt install expect
set timeout 20
set host [lindex $argv 0]
set username [lindex $argv 1]
set password [lindex $argv 2]
set command [lindex $argv 3]
# 启动SecureCRT
spawn securecrt -ssh $username@$host -password $password
# 发送命令
send "$command\r"
# 等待命令结束
expect eof
使用方法:chmod +x script.exp赋予执行权限,./script.exp <host> <username> <password> "<command>"运行。
~/scripts/);.vbs、.py、.exp)。若使用Expect脚本,可直接在Debian终端执行:
./securecrt_auto.sh 192.168.1.100 admin your_password "ls -l"
需确保脚本有执行权限(chmod +x script.exp)。
print()、VBScript的crt.Log());try-except(Python)或On Error Resume Next(VBScript)捕获异常,避免脚本中断。time.sleep()(Python)或WaitForString的超时时间(VBScript),避免不必要的延迟;def、VBScript的Sub),提高代码复用性;os.getenv("PASSWORD"))或配置文件(如config.ini)存储。chmod +x script_name);gpg)加密配置文件;