GO_FOR_LINUX

package main

import (
"flag"
"fmt"
"golang.org/x/crypto/ssh"
"log"
"net"
"os"
"time"
)

func connect_host(user, password, host string, port int) (*ssh.Session, error) {
var (
auth []ssh.AuthMethod
addr string
clientConfig *ssh.ClientConfig
client *ssh.Client
session *ssh.Session
err error
)
auth = make([]ssh.AuthMethod, 0)
auth = append(auth, ssh.Password(password))
clientConfig = &ssh.ClientConfig{
User: user,
Auth: auth,
Timeout: 30 * time.Second,
HostKeyCallback: func(hostname string, remote net.Addr, key ssh.PublicKey) error {
return nil
},
}

addr = fmt.Sprintf("%s:%d", host, port)

if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {
return nil, err
}

if session, err = client.NewSession(); err != nil {
return nil, err
}

return session, nil
}

func main() {
host_ip := flag.String("host_ip", "127.0.0.1", "ipAddr")
flag.Parse()
session, err := connect_host("dba", "xxxxxxx", *host_ip, 22)
if err != nil {
log.Fatal(*host_ip, err)
}

defer session.Close()

session.Stdout = os.Stdout
session.Stderr = os.Stderr
session.Run("for db_type in {mysql,redis,java}; do num=`ps -elf | grep $db_type | grep -v grep | wc -l`; if [ $num -gt 0 ]; then echo $db_type : $num; fi; done")
}

转载于:https://www.cnblogs.com/o-to-s/articles/10228867.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值