作者: 横渡 | 来源:发表于2018-05-11 20:12 被阅读11次

    自动化登陆交互脚本

    使用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
    

    相关文章

      网友评论

          本文标题:

          本文链接:https://www.haomeiwen.com/subject/yrjqdftx.html