package main import ( "bytes" "log" "golang.org/x/crypto/ssh" ) type SSHConfig struct { signer ssh.Signer config *ssh.ClientConfig client *ssh.Client logged bool name string snapshot []Snapshot } func (s *SSHConfig) exec(cmd string) (b *bytes.Buffer, err error) { if *debugFlag { log.Printf("SSHConfig.exec : %s : Start %s", s.name, cmd) } session, err := s.client.NewSession() if err != nil { if *debugFlag { log.Printf("SSHConfig.exec : %s : client().NewSession(%s) : %s", s.name, cmd, err) } return } var buf bytes.Buffer b = &buf session.Stdout = b err = session.Run("TZ=\"" + cfg.Timezone + "\" " + cmd) if err != nil { if *debugFlag { log.Printf("SSHConfig.exec : session(%s).Run(%s) : %s", s.name, cmd, err) } return } session.Close() return }