fix: scp网元文件复制到本地保留原先同名文件
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"time"
|
||||||
|
|
||||||
"be.ems/src/framework/config"
|
"be.ems/src/framework/config"
|
||||||
"be.ems/src/framework/logger"
|
"be.ems/src/framework/logger"
|
||||||
@@ -16,9 +17,9 @@ func FileSCPLocalToNe(neIp, localPath, nePath string) error {
|
|||||||
// scp /path/to/local/file.txt user@remote-server:/path/to/remote/directory/
|
// scp /path/to/local/file.txt user@remote-server:/path/to/remote/directory/
|
||||||
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
||||||
cmd := exec.Command("scp", "-r", localPath, neDir)
|
cmd := exec.Command("scp", "-r", localPath, neDir)
|
||||||
_, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("FileSCPLocalToNe %s", err.Error())
|
logger.Errorf("FileSCPLocalToNe %s => %s", output, err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@@ -31,13 +32,23 @@ func FileSCPNeToLocal(neIp, nePath, localPath string) error {
|
|||||||
logger.Errorf("FileSCPNeToLocal MkdirAll err %v", err)
|
logger.Errorf("FileSCPNeToLocal MkdirAll err %v", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// 如果目标文件已经存在,先将目标文件重命名
|
||||||
|
if info, err := os.Stat(localPath); err == nil && !info.IsDir() {
|
||||||
|
ext := filepath.Ext(localPath)
|
||||||
|
name := localPath[0 : len(localPath)-len(ext)]
|
||||||
|
newName := fmt.Sprintf("%s-%s%s", name, time.Now().Format("20060102_150405"), ext)
|
||||||
|
err := os.Rename(localPath, newName)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
usernameNe := config.Get("ne.user").(string)
|
usernameNe := config.Get("ne.user").(string)
|
||||||
// scp user@remote-server:/path/to/remote/directory/ /path/to/local/file.txt
|
// scp user@remote-server:/path/to/remote/directory/ /path/to/local/file.txt
|
||||||
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
neDir := fmt.Sprintf("%s@%s:%s", usernameNe, neIp, nePath)
|
||||||
cmd := exec.Command("scp", "-r", neDir, localPath)
|
cmd := exec.Command("scp", "-r", neDir, localPath)
|
||||||
_, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("FileSCPNeToLocal %s", err.Error())
|
logger.Errorf("FileSCPNeToLocal %s => %s", output, err.Error())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user