Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecCommand ¶
ExecCommand 执行系统命名
// 执行命令 output, err := ExecCommand("ls", []string{"-la"}) if err != nil { fmt.Printf("execute command error: %s", err) return } // 输出执行结果 fmt.Println(string(output))
func ExecRealtimeCommand ¶
func ExecRealtimeCommand(command string, args []string, outputHandler CommandOutputHandler) error
ExecRealtimeCommand 实时输出命了执行结果
// 定义一个实时输出函数 handler := func(output string) { fmt.Print(output) } command := "top" args := []string{"-b", "-n", "10"} // 执行 top 命令 if err := cmd.ExecRealtimeCommand(command, args, handler); err != nil { fmt.Println(err) }
Types ¶
type CommandOutputHandler ¶
type CommandOutputHandler func(output string)
CommandOutputHandler 定义一个函数类型,用于处理命令的实时输出
type RemoteCommander ¶
type SSHCommander ¶
func (*SSHCommander) GetFile ¶
func (s *SSHCommander) GetFile(remoteFilePath string, localDirPath string) error
GetFile 从远程服务器获取文件到本地
sshCmd := &cmd.SSHCommander{ Host: "xxx.xxx.xxx.xxx", User: "user", Password: "123456", } // 从远程服务器获取文件到本地 remoteFilePath := "/path/to/remote/file" localDirPath := "/path/to/local/dir" err = sshCmd.GetFile(remoteFilePath, localDirPath) if err != nil { panic(err) } fmt.Printf("Downloaded file %s from remote path %s to local directory %s\n", filepath.Base(remoteFilePath), remoteFilePath, localDirPath)
func (*SSHCommander) RunCommand ¶
func (s *SSHCommander) RunCommand(cmd string) (string, error)
RunCommand 运行远程命令
sshCmd := &cmd.SSHCommander{ Host: "xxx.xxx.xxx.xxx", User: "user", Password: "123456", } // 运行远程命令 out, err := sshCmd.RunCommand("ls -al") if err != nil { panic(err) } fmt.Println(out)
func (*SSHCommander) SendFile ¶
func (s *SSHCommander) SendFile(localFilePath string, remoteDirPath string) error
SendFile 发送本地文件到远程服务器
sshCmd := &cmd.SSHCommander{ Host: "xxx.xxx.xxx.xxx", User: "user", Password: "123456", } // 发送本地文件到远程服务器 localFilePath := "logfile.log" remoteDirPath := "/home/" err = sshCmd.SendFile(localFilePath, remoteDirPath) if err != nil { panic(err) } fmt.Println("File sent successfully!")
type SSHTunnel ¶
type SSHTunnel struct {
// contains filtered or unexported fields
}
func NewSSHTunnel ¶
func NewSSHTunnel(remoteHost string, remotePort int, sshConfig *ssh.ClientConfig, localAddr string) (*SSHTunnel, error)
NewSSHTunnel
sshConfig := &ssh.ClientConfig{ User: "username", Auth: []ssh.AuthMethod{ ssh.Password("password"), }, }
tunnel, err := sshutil.NewSSHTunnel("example.com", 80, sshConfig, "127.0.0.1:8080")
if err != nil { log.Fatalf("failed to create SSH tunnel: %v", err) }
defer tunnel.Close()
// 使用隧道转发的本地端口 // ...
Click to show internal directories.
Click to hide internal directories.