ssh

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2021 License: LGPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BackupFile

func BackupFile(s Interface, file string) (string, error)

func DiskAvail

func DiskAvail(s Interface, path string) (int, error)

DiskAvail returns available disk space in GiB.

func GetNetworkInterface

func GetNetworkInterface(s Interface, ip string) string

GetNetworkInterface return network interface name by ip

func MakePrivateKeySigner

func MakePrivateKeySigner(privateKey []byte, passPhrase []byte) (ssh.Signer, error)

func MakePrivateKeySignerFromFile

func MakePrivateKeySignerFromFile(key string) (ssh.Signer, error)

func MemoryCapacity

func MemoryCapacity(s Interface) (uint64, error)

MemoryCapacity returns the machine's total memory from /proc/meminfo. Returns the total memory capacity as an uint64 (number of bytes).

func NumCPU

func NumCPU(s Interface) (int, error)

NumCPU returns the number of logical CPUs.

func ParsePublicKeyFromFile

func ParsePublicKeyFromFile(keyFile string) (*rsa.PublicKey, error)

func RestoreFile

func RestoreFile(s Interface, file string) error

func Timestamp

func Timestamp(s Interface) (int, error)

Timestamp returns target node timestamp.

Types

type Config

type Config struct {
	User       string `validate:"required"`
	Host       string `validate:"required"`
	Port       int    `validate:"required"`
	Password   string
	PrivateKey []byte
	PassPhrase []byte
	// 150 seconds is longer than the underlying default TCP backoff delay (127
	// seconds). This timeout is only intended to catch otherwise uncaught hangs.
	DialTimeOut time.Duration
	Retry       int
}

type Interface

type Interface interface {
	HostIP() string
	Ping() error
	Exec(cmd string) (stdout string, stderr string, exit int, err error)
	ExecStream(cmd string, stdout, stderr io.Writer) (exit int, err error)
	Execf(format string, a ...interface{}) (stdout string, stderr string, exit int, err error)
	CombinedOutput(cmd string) ([]byte, error)

	CopyFile(src, dst string) error
	WriteFile(src io.Reader, dst string) error
	ReadFile(filename string) ([]byte, error)
	Exist(filename string) (bool, error)
	Stat(p string) (os.FileInfo, error)

	LookPath(file string) (string, error)
}

type SSH

type SSH struct {
	User string
	Host string
	Port int

	Retry int
	// contains filtered or unexported fields
}

func New

func New(c *Config) (*SSH, error)

func (*SSH) CombinedOutput

func (s *SSH) CombinedOutput(cmd string) ([]byte, error)

func (*SSH) CopyFile

func (s *SSH) CopyFile(src, dst string) error

func (*SSH) Exec

func (s *SSH) Exec(cmd string) (stdout string, stderr string, exit int, err error)

func (*SSH) ExecStream

func (s *SSH) ExecStream(cmd string, stdout, stderr io.Writer) (exit int, err error)

func (*SSH) Execf

func (s *SSH) Execf(format string, a ...interface{}) (stdout string, stderr string, exit int, err error)

func (*SSH) Exist

func (s *SSH) Exist(filename string) (bool, error)

func (*SSH) HostIP

func (s *SSH) HostIP() string

func (*SSH) LookPath

func (s *SSH) LookPath(file string) (string, error)

func (*SSH) Ping

func (s *SSH) Ping() error

func (*SSH) ReadFile

func (s *SSH) ReadFile(filename string) ([]byte, error)

func (*SSH) Stat

func (s *SSH) Stat(p string) (os.FileInfo, error)

func (*SSH) WriteFile

func (s *SSH) WriteFile(src io.Reader, dst string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL