Fix: 增加SSH超时时间和详细日志
- 超时从10秒增加到30秒 - 添加每个命令执行的详细日志 - 便于诊断LLDP命令返回0字节的问题
This commit is contained in:
@@ -35,11 +35,12 @@ func DiscoverDevice(ip string, deviceType models.DeviceType, username, password
|
|||||||
Type: deviceType,
|
Type: deviceType,
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建SSH客户端 - 默认启用不安全加密算法以兼容老旧设备
|
// 创建SSH客户端 - 默认启用不安全加密算法以兼容老旧设备,增加超时时间
|
||||||
client := sshclient.NewClient(sshclient.Config{
|
client := sshclient.NewClient(sshclient.Config{
|
||||||
Host: ip,
|
Host: ip,
|
||||||
Username: username,
|
Username: username,
|
||||||
Password: password,
|
Password: password,
|
||||||
|
Timeout: 30 * time.Second, // 增加到30秒,防止大输出超时
|
||||||
InsecureCiphers: true, // 启用旧版加密算法支持
|
InsecureCiphers: true, // 启用旧版加密算法支持
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -75,15 +76,17 @@ func DiscoverDevice(ip string, deviceType models.DeviceType, username, password
|
|||||||
// 获取命令列表
|
// 获取命令列表
|
||||||
commands := parser.GetCommands()
|
commands := parser.GetCommands()
|
||||||
|
|
||||||
// 执行命令 - 允许部分命令失败
|
// 执行命令 - 允许部分命令失败,增加详细日志
|
||||||
outputs := make([]string, 0, len(commands))
|
outputs := make([]string, 0, len(commands))
|
||||||
for _, cmd := range commands {
|
for i, cmd := range commands {
|
||||||
|
fmt.Printf("[PARSER] Executing command %d/%d: %s\n", i+1, len(commands), cmd)
|
||||||
output, err := client.ExecuteCommand(cmd)
|
output, err := client.ExecuteCommand(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// 记录警告但继续执行其他命令
|
// 记录警告但继续执行其他命令
|
||||||
fmt.Printf("Warning: command '%s' failed: %v\n", cmd, err)
|
fmt.Printf("Warning: command '%s' failed: %v\n", cmd, err)
|
||||||
outputs = append(outputs, "")
|
outputs = append(outputs, "")
|
||||||
} else {
|
} else {
|
||||||
|
fmt.Printf("[PARSER] Command '%s' returned %d bytes\n", cmd, len(output))
|
||||||
outputs = append(outputs, output)
|
outputs = append(outputs, output)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user