自动化登陆交互脚本
使用mac登陆公司EMR集群时,需要经过多个跳板机,及切换多次账户名称,
需要小心翼翼按照文档操作,很是麻烦。因此想到使用 expect
编写自动
登录脚本。
mac安装 expect:
brew install expect
通过命令查看 expect 路径
which expect
我这里的输出是 /usr/local/bin/expect
所以在脚本的第一行为
#!/usr/local/bin/expect
注意:这个脚本不是通过bash执行,是通过 expect执行。刚开始我没注意到这个问题,
使用 bash 执行脚本执行脚本一直提示 commond spawn not found
。
修改文件权限
chmod +x new_log.sh
执行脚本(注意不能用 bash new_log.sh来执行):
./new_log.sh
脚本内容如下:
#!/usr/local/bin/expect
# 设置超时时间
set timeout 5
# 设置跳板机密码
set passwd "yourpasswd"
#连接跳板机
spawn ssh aliyun@124.36.69.26
expect "*yes/no*" {send "yes\n"}
expect "*password:" {send "$passwd\r"}
# 第二层登录
expect "*aliyun@bi-namenode-1*" {send "ssh 175.28.23.247\r"}
expect "*password:" {send "$passwd\r"}
# 切换到root
expect "*aliyun@emr-header-1*" {send "sudo su root\r"}
expect "*password*" {send "$passwd\r"}
# 第三层登录
expect "*root@emr-header-1*" {send "ssh bi-emr-gateway\r"}
expect "*root@bi-emr-gateway*" {send "sudo su - hadoop\r"}
# 切换到hadoop账号
interact
网友评论