Go语言使用Scp传输文件

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
    package main  
      
    import (  
        "fmt"  
        "go-ssh/ssh"  
        "io"  
        "os"  
    )  
      
    const (  
        user     = "user"  
        ip_port  = "ip_port"  
        password = "Passwd"  
    )  
      
    func main() {  
        PassWd := []ssh.AuthMethod{ssh.Password(password)}  
        Conf := ssh.ClientConfig{User: user, Auth: PassWd}  
        Client, err := ssh.Dial("tcp", ip_port, &Conf)  
        if err != nil {  
            fmt.Println(nil)  
        }  
        defer Client.Close()  
        if session, err := Client.NewSession(); err == nil {  
            defer session.Close()  
            go func() {  
                Buf := make([]byte, 1024)  
                w, _ := session.StdinPipe()  
                defer w.Close()  
                File, _ := os.Open("FilePath")  
                info, _ := File.Stat()  
                fmt.Fprintln(w, "C0644", info.Size(), "Des_Name")  
                for {  
                    n, err := File.Read(Buf)  
                    fmt.Fprint(w, string(Buf[:n]))  
                    if err != nil {  
                        if err == io.EOF {  
                            return  
                        } else {  
                            panic(err)  
                        }  
                    }  
                }  
            }()  
            if err := session.Run("/usr/bin/scp -qrt /mnt"); err != nil {  
                if err != nil {  
                    if err.Error() != "Process exited with: 1. Reason was:  ()" {  
                        fmt.Println(err.Error())  
                    }  
                }  
            }  
        }  
    }  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Android SD卡工具类

下一篇:o语言ssh简单的使用