45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
package ssh
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/exec"
|
|
"path/filepath"
|
|
|
|
"ems.agt/src/framework/config"
|
|
"ems.agt/src/framework/logger"
|
|
)
|
|
|
|
// 网元NE 文件复制到远程文件
|
|
func FileSCPLocalToNe(neIp, localPath, nePath string) error {
|
|
usernameNe := config.Get("ne.user").(string)
|
|
// scp /path/to/local/file.txt user@remote-server:/path/to/remote/directory/
|
|
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
|
cmd := exec.Command("scp", "-r", localPath, neDir)
|
|
_, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
logger.Errorf("FileSCPLocalToNe %s", err.Error())
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// 网元NE 远程文件复制到本地文件
|
|
func FileSCPNeToLocal(neIp, nePath, localPath string) error {
|
|
// 确保文件夹路径存在
|
|
if err := os.MkdirAll(filepath.Dir(localPath), 0750); err != nil {
|
|
logger.Errorf("FileSCPNeToLocal MkdirAll err %v", err)
|
|
return err
|
|
}
|
|
usernameNe := config.Get("ne.user").(string)
|
|
// scp user@remote-server:/path/to/remote/directory/ /path/to/local/file.txt
|
|
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
|
cmd := exec.Command("scp", "-r", neDir, localPath)
|
|
_, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
logger.Errorf("FileSCPNeToLocal %s", err.Error())
|
|
return err
|
|
}
|
|
return nil
|
|
}
|