expect模块的使用,主要没装包折腾一晚上
第一步首先下载expect 模块,yum list |grep expect ,安装下面的模块.
expect.x86_64 5.44.1.15-5.el6_4 @base
expect-devel.x86_64 5.44.1.15-5.el6_4 @base
安装完成后,可以在程序which expect下面可以查看环境/usr/bin/expect,需要expect和tcl两个包
rpm -qa tcl
tcl-8.5.7-6.el6.x86_64
[root@ob ~]# rpm -qa | grep expect
expect-5.44.1.15-5.el6_4.x86_64
expect-devel-5.44.1.15-5.el6_4.x86_64
贴两个代码
cat test1.sh
#!/usr/bin/expect SERVERS="192.168.79.129 192.168.79.131"
PASSWORD=123456 auto_ssh_copy_id() {
echo "2"
expect -c "set timeout -1;
spawn scp -r /root/app root@$1:/root/;
expect {
*(yes/no)* {send -- yes\r;exp_continue;}
*assword:* {send -- $2\r;exp_continue;}
eof {exit 0;}
}";
} sh_copy_id_to_all() {
echo "111"
for SERVER in $SERVERS
do
auto_ssh_copy_id $SERVER $PASSWORD
echo ${SERVER}
done
}
sh_copy_id_to_all
next code
SERVER="192.168.79.129 192.168.79.131"
auto_zookp_cp() {
expect {*yes/no* {send "yes\r"}
expect {*password* {send "123456\r"}
}
for myserver in ${SERVER}
do
scp -r /root/app root@${myserver}:/root/
auto_zookp_cp
done
use sh to execute the shell,otherwise it wiil produce an error.
expect模块的使用,主要没装包折腾一晚上的更多相关文章
- Perl的Expect模块学习
Perl的Expect模块学习 http://www.xuebuyuan.com/1852717.html
- 转:折腾一晚上Bullet及Ogre相关工具的成果 -- 3Ds Max,Maya, blender, GameKit
起始目的很简单,整合Bullet及Ogre,找个能够生成.scene和.bullet文件的建模工具. 折腾一晚上Bullet及Ogre相关的东西,基本上就像爱迪生发明灯泡一样,得出了N个失败的教训,总 ...
- 打包发布Python模块或程序,安装包
Python模块.扩展和应用程序可以按以下几种形式进行打包和发布: python setup.py获取帮助的方式 python setup.py --help python setup.py --he ...
- Ansible 命令相关模块command, shell, raw, expect, script, telnet[转]
本文主要介绍Ansible的几个命令模块,包括: command - 在远程节点上执行命令 shell - 让远程主机在shell进程下执行命令 script - 将本地script传送到远程主机之后 ...
- perl 下使用非root用户安装模块
perl下安装模块可以使用cpan命令,但是通常我们不具有root用户权限,所以只能以sudo方式安装模块. 例如需要安装Net::SCP::Expect模块, 执行cpan Net::SCP::Ex ...
- 解析 Linux 内核可装载模块的版本检查机制
转自:http://www.ibm.com/developerworks/cn/linux/l-cn-kernelmodules/ 为保持 Linux 内核的稳定与可持续发展,内核在发展过程中引进了可 ...
- 用phpcms开发模块时中文乱码问题
学着用phpcms开发一个文件管理模块,出现中文乱码,折腾了半天,总结如下 1.自己在mysql客户端建表,默认表格的编码为latin1_swedish_ci,虽然可以建好后用alter命令修改编码, ...
- requirejs解决异步模块加载方案
他首先会遍历enableRegistry取出其中定义的模块,并且将没有加载成功的模块标识注入noLoads数组,如果过期了这里就会报错 如果上述没问题还会做循环依赖的判断,主要逻辑在breakCycl ...
- 制作linux内核安装包
实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单. make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件 ...
随机推荐
- JS打开新窗口防止被浏览器阻止的方法[转]
本文实例讲述了JS打开新窗口防止被浏览器阻止的方法.分享给大家供大家参考.具体分析如下: 用传统的window.open()方式打开新窗口,会被浏览器阻止,那么,我们如何才能让JS打开新窗口不被浏览器 ...
- 【js】replace()
replace方法的语法是: stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp) ...
- MySQL数据库查询优化建议
1. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使 ...
- RHEL7 -- NetworkManager
RHEL7中默认的网络服务是由NetworkManager提供,NetworkManager可以动态控制和配置网络. 网络工具和应用 应用或工具 描述 NetworkManager 默认的网络守护进程 ...
- Leetcode 二分查找 Search Insert Position
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie Search Insert Position Total Accepted: 14279 T ...
- 关于JavaScript中name的意义冲突
在昨天的<Javascript权威指南>学习笔记之十:ECMAScript 5 增强的对象模型一文中,对于一段代码的调试出现了一个奇怪现象,现将源码贴在以下: <script typ ...
- 【驱动笔记10】再谈IRP
文章作者:grayfox作者主页:http://nokyo.blogbus.com原始出处:http://www.blogbus.com/nokyo-logs/34010655.html 这一节会对I ...
- 项目打成jar包
distributionManagement 为发布到本地参考的地址 repository 设置从本地maven库拉取jar包 <project xmlns:xsi="http://w ...
- hadoop环境搭建-完全分布式
用于测试,我用4台虚拟机搭建成了hadoop结构 我用了两个台式机.一个xp系统,一个win7系统.每台电脑装两个虚拟机,要不然内存就满了. 1.安装虚拟机环境 Vmware,收费产品,占内存较大. ...
- Statistical Concepts and Market Returns
Statistical Concepts and Market Returns Categories of statistics Descriptive statistics: used to sum ...