March Update
This commit is contained in:
		
							parent
							
								
									54cdb80ef7
								
							
						
					
					
						commit
						4a21bb48bf
					
				
							
								
								
									
										39
									
								
								ssh.go
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								ssh.go
									
									
									
									
									
								
							@ -19,7 +19,7 @@ import (
 | 
				
			|||||||
var ShellRes, ShellErr string
 | 
					var ShellRes, ShellErr string
 | 
				
			||||||
var ShellExit bool
 | 
					var ShellExit bool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type sshd struct {
 | 
					type Sshd struct {
 | 
				
			||||||
	SSHC    *ssh.Session
 | 
						SSHC    *ssh.Session
 | 
				
			||||||
	infile  io.Writer
 | 
						infile  io.Writer
 | 
				
			||||||
	outfile io.Reader
 | 
						outfile io.Reader
 | 
				
			||||||
@ -152,7 +152,30 @@ func CreateSftp(client *ssh.Client) (*sftp.Client, error) {
 | 
				
			|||||||
	return sftpClient, err
 | 
						return sftpClient, err
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func FtpTransfer(src, dst string, sftpClient *sftp.Client) error {
 | 
					func FtpTransferOut(localFilePath, remoteDir string, sftpClient *sftp.Client) error {
 | 
				
			||||||
 | 
						srcFile, err := os.Open(localFilePath)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer srcFile.Close()
 | 
				
			||||||
 | 
						var remoteFileName = path.Base(localFilePath)
 | 
				
			||||||
 | 
						dstFile, err := sftpClient.Create(path.Join(remoteDir, remoteFileName))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						defer dstFile.Close()
 | 
				
			||||||
 | 
						for {
 | 
				
			||||||
 | 
							buf := make([]byte, 1024)
 | 
				
			||||||
 | 
							n, _ := srcFile.Read(buf)
 | 
				
			||||||
 | 
							if n == 0 {
 | 
				
			||||||
 | 
								break
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							dstFile.Write(buf)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func FtpTransferIn(src, dst string, sftpClient *sftp.Client) error {
 | 
				
			||||||
	srcFile, err := sftpClient.Open(src)
 | 
						srcFile, err := sftpClient.Open(src)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
@ -183,9 +206,9 @@ func Command(session *ssh.Session, cmdstr string) (string, error) {
 | 
				
			|||||||
	return res.String(), nil
 | 
						return res.String(), nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func SSHPipeShell(session *ssh.Session, cmdstr string) (*sshd, error) {
 | 
					func SSHPipeShell(session *ssh.Session, cmdstr string) (*Sshd, error) {
 | 
				
			||||||
	var err error
 | 
						var err error
 | 
				
			||||||
	lovessh := sshd{}
 | 
						lovessh := Sshd{}
 | 
				
			||||||
	lovessh.SSHC = session
 | 
						lovessh.SSHC = session
 | 
				
			||||||
	lovessh.infile, err = lovessh.SSHC.StdinPipe()
 | 
						lovessh.infile, err = lovessh.SSHC.StdinPipe()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@ -216,7 +239,7 @@ func SedColor(str string) string {
 | 
				
			|||||||
	return string(reg.ReplaceAll([]byte(str), []byte("")))
 | 
						return string(reg.ReplaceAll([]byte(str), []byte("")))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this sshd) GetResult(maxtime int) (string, string, bool) {
 | 
					func (this Sshd) GetResult(maxtime int) (string, string, bool) {
 | 
				
			||||||
	var stop bool
 | 
						var stop bool
 | 
				
			||||||
	reader := bufio.NewReader(this.outfile)
 | 
						reader := bufio.NewReader(this.outfile)
 | 
				
			||||||
	erreader := bufio.NewReader(this.errfile)
 | 
						erreader := bufio.NewReader(this.errfile)
 | 
				
			||||||
@ -271,16 +294,16 @@ func (this sshd) GetResult(maxtime int) (string, string, bool) {
 | 
				
			|||||||
	return restr, errstr, true
 | 
						return restr, errstr, true
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this sshd) Exec(cmdstr string, maxtime int) (string, string, bool) {
 | 
					func (this Sshd) Exec(cmdstr string, maxtime int) (string, string, bool) {
 | 
				
			||||||
	this.infile.Write([]byte(cmdstr + "\n"))
 | 
						this.infile.Write([]byte(cmdstr + "\n"))
 | 
				
			||||||
	return this.GetResult(maxtime)
 | 
						return this.GetResult(maxtime)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this sshd) WriteCmd(cmdstr string) {
 | 
					func (this Sshd) WriteCmd(cmdstr string) {
 | 
				
			||||||
	this.infile.Write([]byte(cmdstr + "\n"))
 | 
						this.infile.Write([]byte(cmdstr + "\n"))
 | 
				
			||||||
	return
 | 
						return
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this sshd) IsExit() bool {
 | 
					func (this Sshd) IsExit() bool {
 | 
				
			||||||
	return ShellExit
 | 
						return ShellExit
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user