码迷,mamicode.com
首页 > 其他好文 > 详细

批量分发 expect,大神止步~

时间:2015-03-28 19:02:02      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:expect

 

#####################################################

本文内容来自《老男孩linux运维实战培训》学生—何旭东

如有转载,请务必保留本文链接及本内容版权信息。 

欢迎广大运维同仁一起交流linux/unix网站运维技术!

QQ:345078833

E-mail:345078833@qq.com 

#####################################################

老男孩linux运维实战培训中心

培训咨询:QQ:80042789 70271111

培训电话:18600338340 18911718229

老男孩老师 QQ:49000448 31333741

网站地址:http://www.etiantian.org

老男孩博客:http://oldboy.blog.51cto.com

老男孩交流群  246054962208160987 226199307  44246017

网站运维交流群:114580181 45039636 37081784
#####################################################

 

   2015-03-26 去蓝讯 chinacache 面试系统工程师,技术上是有一定的落差的。发现每次去大公司面试结束后,都会指点出你的不足以及鼓励你让你努力 加油,毕竟在技术的道路没有顶尖,只有不断向顶点冲击的心。

  今天说一说expect 非交互式语言。再说这门语言的时候,首先我的目的是对N台机器进行批量部署 批量执行脚本.

1  先确定分发机器,在机器上 安装 :yum -y install expect

2 干货,直接发命令

 

expect .ssh/id_dsa.pub 192.168.1.21<?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office">

?xml:namespace>

 

[oldman@A ~]$ cat fenfa_sshkey.exp 
#!/usr/bin/expect
if { $argc != 2 } {   
 send_user "usage: expect fenfa_sshkey.exp file host\n"   
 exit   


#define var
set file [lindex $argv 0]
set host [lindex $argv 1]
set password "123456"
spawn ssh-copy-id -i  $file "-p 52113 oldman@$host"
expect {
        "yes/no"    {send "yes\r";exp_continue}
        "*password" {send "$password\r"}
}
expect eof

exit -onexit {
  send_user "Oldboy say good bye to you!\n"
}

 

小结:

Expect需要用expect 命令执行,或者.执行。Sh不能执行。

$argv 0 是第一个参数   $argv 1 是第二个参数

 

 

[oldboy@abc ~]$ cat fenfa_sshkey.sh

#!/bin/sh

. /etc/init.d/functions

for ip in `cat iplist`

do

 expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub $ip

 if [ $? -eq 0 ];then

    action "$ip" /bin/true

 else

    action "$ip" /bin/false

 fi

done

[oldboy@abc ~]$ cat iplist

192.168.74.128

192.168.74.130

小结:

执行fenfa_sshkey.sh看目标authorized_keys  是否已经有key文件。

3 执行./fenfa_sshkey.sh

   文件,调用 fenfa_sshkey.exp 脚本

4 如遇故障,发生缓慢等情况:

    

81 GSSAPIAuthentication no

84 GSSAPIStrictAcceptorCheck no

122 UseDNS no

/etc/hosts   把主机名加上。

测试连接慢:  ssh -v oldboy@192.168.74.131

 

要想到~~~用命令,找命令去测试!!! 关键是思想,我当时发生连接慢,查找了2天。

以后我会多多努力,多多总结。

本文出自 “晴空” 博客,谢绝转载!

批量分发 expect,大神止步~

标签:expect

原文地址:http://7179867.blog.51cto.com/7169867/1625872

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!