linuxexpect

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

创新互联公司成立以来不断整合自身及行业资源、不断突破观念以使企业策略得到完善和成熟,建立了一套“以技术为基点,以客户需求中心、市场为导向”的快速反应体系。对公司的主营项目,如中高端企业网站企划 / 设计、行业 / 企业门户设计推广、行业门户平台运营、手机APP定制开发手机网站制作设计、微信网站制作、软件开发、温江服务器托管等实行标准化操作,让客户可以直观的预知到从创新互联公司可以获得的服务效果。


文章标题:linuxexpect
链接分享:http://scyanting.com/article/gpjccs.html