浅谈多台节点机的expect联合

集群节点机联合启动说明:
举例说明,如对4台安装的Vertica节点机做nmon性能测试
1、对4台节点机分别作ssh互信通讯;
2、vertica分别在4台节点机上集群安装;
3、4台节点机建立同样的用户名与密码,如root/dbadmin;
4、将nmon对应的文件夹存放在4台节点机同样的位置;
5、expect编写脚本cgl_nmon.exp,如下:

#!/usr/bin/expect

# 参数校验
if { $argc < 3 } {
    send_user "Usage: $argv0 username password action\n"
    send_user "\tusername : Who will login remote host.\n"
    send_user "\tpassword : Password of who login remote host.\n"
    send_user "\taction   : {start|stop} nmon.\n"
    exit 1
}

# 设定参数
set user [lindex $argv 0]
set passwd [lindex $argv 1]
set action [lindex $argv 2]

# 脚本行为
if { $action == "start" } {
    set actionsh "./startnmon.sh\n"
}
if { $action == "stop" } {
    set actionsh "./stopnmon.sh\n"
}

# 远程登录主机,执行启动/停止nmon脚本
foreach hostip {
        节点机1ip
                节点机2ip
        节点机3ip
                节点机4ip
} {
    spawn ssh $user@$hostip
    expect {
        "*re you sure you want to continue connecting (yes/no)?" {
            send "yes\n"
        }
        
        "*assword:" {
            send "$passwd\n"
        }
    }

    expect {
        "*:~" {
            send "cd /nmon\n"
            expect {
                "*:/nmon" {
                    set timeout 3
                    send $actionsh
                    expect {
                        "*:/nmon" {
                            exp_continue
                        }
                        eof {
                            exp_continue    
                        }
                    }
                }
            }
        }
    }
}

6、在linux中执行.exp脚本来启动
        ./cgl_nmon.exp root dbadmin start
7、执行结束后可以直接查看进程
        ps -ef |grep nmon
8、若存在进程,则说明启动成功,
9、若想结束进程,可以直接杀掉        kill -9 pid
        也可以更方便地执行(4台节点机同时结束进程):
        ./cgl_nmon.exp root dbadmin stop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值