fix: 网元操作文件列表/上传/下载改为ssh连接

This commit is contained in:
TsMask
2024-06-06 16:55:30 +08:00
parent 4fe2e4f3f4
commit b3dd0d6643
2 changed files with 58 additions and 24 deletions

View File

@@ -4,7 +4,6 @@ import (
"fmt"
"strings"
"be.ems/src/framework/config"
"be.ems/src/framework/logger"
"be.ems/src/framework/utils/cmd"
"be.ems/src/framework/utils/parse"
@@ -23,11 +22,10 @@ type FileListRow struct {
}
// 文件列表
// neIp 网元IP空字符串为本地
// search 文件名后模糊*
//
// return 目录大小,行记录,异常
func FileList(path, neIp, search string) (string, []FileListRow, error) {
func FileList(sshClient *ConnSSH, path, search string) (string, []FileListRow, error) {
totalSize := ""
var rows []FileListRow
rowStr := ""
@@ -37,21 +35,18 @@ func FileList(path, neIp, search string) (string, []FileListRow, error) {
if search != "" {
searchStr = search + searchStr
}
pathStr := fmt.Sprintf("cd %s \n", path)
cmdStr := fmt.Sprintf("ls -lthd --time-style=+%%s %s \n", searchStr)
cmdStr := fmt.Sprintf("cd %s && ls -lthd --time-style=+%%s %s", path, searchStr)
// 是否远程读取
if neIp != "" {
usernameNe := config.Get("ne.user").(string) // 网元统一用户
sshHost := fmt.Sprintf("%s@%s", usernameNe, neIp)
resultStr, err := cmd.ExecWithCheck("ssh", sshHost, pathStr, cmdStr)
// 是否远程客户端读取
if sshClient == nil {
resultStr, err := cmd.Execf(cmdStr)
if err != nil {
logger.Errorf("Ne FileList Path: %s, Search: %s, Error:%s", path, search, err.Error())
return totalSize, rows, err
}
rowStr = resultStr
} else {
resultStr, err := cmd.Execf(pathStr, cmdStr)
resultStr, err := sshClient.RunCMD(cmdStr)
if err != nil {
logger.Errorf("Ne FileList Path: %s, Search: %s, Error:%s", path, search, err.Error())
return totalSize, rows, err