1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package remote
- import (
- "bytes"
- "fmt"
- "io"
- "os"
- "testing"
- "xg_auto_deploy/internal/models"
- "golang.org/x/crypto/ssh"
- )
- var GlobalServerNodeConfigTest = models.ServerNodeConfig{
- ServerNodeInfo: &models.ServerNodeInfo{
- IpPort: "172.23.6.92:22",
- LocalFile: `C:\Program_GT\Code\Go\Work\xg_autodeploy\file`,
- TargetFile: "/home/gtong/testf/",
- User: "your_user",
- Password: "your_password",
- XuguAddr: "your_xugu_addr",
- },
- SSHInfo: &models.SSHInfo{
- SSHClient: &ssh.ClientConfig{
- User: "gtong",
- Auth: []ssh.AuthMethod{
- ssh.Password("845895"),
- },
- // 设置其他字段
- HostKeyCallback: ssh.InsecureIgnoreHostKey(), // 不验证远程主机的身份,仅用于示例,请不要在生产环境中使用
- },
- },
- AppInfo: &models.AppInfo{
- Gcc: "your_gcc",
- Libaio: "your_libaio",
- Snmpd: "your_snmpd",
- Ntpd: "your_ntpd",
- },
- }
- func TestUploadFile(t *testing.T) {
- file, err := os.Open(`C:\Program_GT\Code\Go\Work\xg_autodeploy\file\config.toml`)
- if err != nil {
- fmt.Println("Error opening file:", err)
- return
- }
- defer file.Close() // 确保在函数退出时关闭文件
- var buf bytes.Buffer
- // 将文件内容复制到 buf 中
- _, err = io.Copy(&buf, file)
- if err != nil {
- fmt.Println("Error reading file:", err)
- return
- }
- UploadFileBuffer(&GlobalServerNodeConfigTest, &buf, "/home/gtong/testf/")
- }
- func TestUploadFiles(t *testing.T) {
- // 连接到远程主机
- client, err := ssh.Dial("tcp", "172.23.6.92:22", GlobalServerNodeConfigTest.SSHInfo.SSHClient)
- if err != nil {
- panic(err)
- }
- defer client.Close()
- SingleCmd(&GlobalServerNodeConfigTest, fmt.Sprintf(`[ ! -d "%s" ] && mkdir -p %s`, GlobalServerNodeConfigTest.TargetFile, GlobalServerNodeConfigTest.TargetFile))
- // 递归上传文件夹内容
- if err := UploadDir(&GlobalServerNodeConfigTest, GlobalServerNodeConfigTest.LocalFile, GlobalServerNodeConfigTest.TargetFile); err != nil {
- panic(err)
- }
- }
|