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
创新互联公司专注于翼城企业网站建设,响应式网站建设,
商城网站制作。翼城网站建设公司,为翼城等地区提供建站服务。全流程按需策划设计,专业设计,全程项目跟踪,
创新互联公司专业和态度为您提供的服务
网站栏目:linuxexpect-创新互联
网址分享:
http://bzwzjz.com/article/dhicpe.html