微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux expect

expect -c "
   set timeout -1;
   spawn ssh root@192.168.6.132;
   expect {
    *(yes/no)* {send  yes\r ;exp_continue;}
    *password* {send  123456\r ;exp_continue;}
eof {exit 0 }
}";
通过expect工具,shell在while循环中完成服务期间的免密登录一键话脚本
1.前提要安装expect包
2.代码如下:
#!/bin/sh
#主服务器密码
password=123456
while read hostname ; do
    expect -c "
         set timeout -1;
         spawn ssh-copy-id ${hostname} ;
         expect {
         "*password:*" {send --  ${password}\r ;exp_continue;}
         "*\(yes/no\)*"  {send -- yes\r ;exp_continue;}
         eof {exit 0;}
          }"
echo "hosts:${hostname} done."
#ipconf.cfg 中存放要与主服务器要免密登录用户的ip 例如: root@1921.68.245.134 每一行的格式与该例相同
done < ipconf.cfg
ifconf.cfg示例:
   root@192.168.6.132
   root@192.168.6.133



版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐