批量分发 expect,大神止步~

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

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

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

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

QQ:345078833

E-mail:[email protected]

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

老男孩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>

[[email protected] ~]$ 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 [email protected]$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 是第二个参数

[[email protected] ~]$ 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

[[email protected] ~]$ 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 [email protected]

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

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

时间: 2024-11-05 18:42:33

批量分发 expect,大神止步~的相关文章

(转)SSH批量分发管理&amp;非交互式expect

目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3.3 利用rsync来实现增量备份 1.4 SSH批量管理分发脚本实战 1.5 SSH批量管理总结 2 非交互式expect 2.1 非交互式生成密钥及实现批量管理 2.2 一键批量安装httpd服务 2.3 一键自动化50台规模集群网站 1 SSH批量分发管理 基于口令的,如何实现批量管理:expe

站在大神肩膀上,深入理解 Android事件分发机制

Android事件分发,参考了网上的很多资料.基本基于android2.2的源码来分析,因为即使是新的版本,里面的原理思想也没有改变. 有了大神的肩膀,我在理解了其原理的基础上,进行一个小总结. 先理解一个概念: 事件:在android中,点击屏幕是时,产生的长按,点击,滑动,双击,多指操作等,构成了android中的事件响应. 如:ACTION_DOWN ACTION_MOVE ACTION_UP 所有的操作事件首先必须执行的是按下操作(ACTION_DOWN),之后所有的操作都是以按下操作作

expect批量分发密钥文件

在做批量分发的时候第一次是两个脚本来完成,后来做了一个expect嵌套,完成了一个脚本进行集成 前提要求服务器需要安装expect [[email protected] scripts]# yum -y install expect 脚本分析: #!/bin/bash key_file='/root/.ssh/id_dsa' ####################### 判断秘钥文件是否存在 ###################### if [ -f $key_file ]         

Linux服务器集群架构部署搭建(三)NFS文件系统、SSH通道建立、批量分发管理(1)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想.  作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第一章 NFS共享服务器的企业应用 1.1 NFS服务--静态数据存储 NFS是(Network File System)主要功能是通过网络让不同的设备端之间可以彼此共享文件或目录.NFS客户端(一般为应用服务器,如WEB)可以通过挂载(mount)方式,将NFS客户端本地系统中(就是一个挂载点)从NFS服务器端共享的数据文件目

SSH批量分发与管理

一.SSH服务介绍 SSH是Secure Shell Protocol的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输,确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议.利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境当中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件.如telnet等. SSH服务结构: SSH服务是由服务端软件OpenSS

SSH服务及批量分发与管理实战

SSH服务 一.SSH服务介绍 SSH是Secure Shell Protocol的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输,确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议.利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境当中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件.如telnet等. SSH服务功能: a.类似telnet远程

大神语录1 如何滑动fragmentmanager里面一个fragment里面的viewgroup---dispatchTouchEvent 、onInterceptTouchEvent 、onTouchEvent

问题:如下图 系统如何知道用户滑动的是A(黑框内的page)还是B(红框内的fgm) 答案: -dispatchTouchEvent .onInterceptTouchEvent .onTouchEvent 问题解析: 这个可以说是安卓内的事件处理问题,首先介绍一下大神说的这三个事件] android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法: 1)public boolean dispatchTouchEvent(MotionEvent ev)  这个方法

听SEO大神夜息分享

今天偶然听说了百度站长平台,又偶然在上面发现了夜息大神的分享(http://zhanzhang.baidu.com/college/videoinfo?id=871). 之前对于SEO的了解只限于减少http请求,css在上js在下,在meta标签里面写些关键词(这个也是利于SEO的吧?).分享里面很多东西都是第一次听说,听完不敢说懂了多少,但是多少是涨知识了. 一.页面加载快很重要 一个页面打开的速度,除了页面本身的问题,不同时间.不同地区.不同线路等因素也会影响速度. 加载快的页面更容易得到

自己封装了一个EF的上下文类.,分享一下,顺便求大神指点

using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.Entity; using System.Data.Entity.Core.Objects; using System.Data.Entity.Infrastructure; using System.Data.Entity.Migrations; using System