linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本
linux自动交互工具expect,tcl安装,以及自动互信脚本
工作中需要对几十台服务器做自动互信,无意中发现expect命令,研究一番。
在网上找了许多资料也没有安装成功,摸索着总算成功了。现分享如下。
expect命令在自动交互中很好用。
系统:虚拟机fedora14,32位。
[root@Linux ~]# uname -a
Linux Linux 2.6.35.6-45.fc14.i686 #1 SMP Mon Oct 18 23:56:17 UTC 2010 i686 i686 i386 GNU/Linux
安装包:
-rw-r--r--. 1 root root 525572 Aug 5 19:22 expect-5.43.0.tar.gz
-rw-r--r--. 1 root root 3641017 Jul 23 13:28 tcl8.4.16-src.tar.gz
安装步骤:
解压安装tcl:
tar zxvf tcl8.4.16-src.tar.gz;
[root@Linux ~]# cd tcl8.4.16/unix/
./configure
make
make install
cp tclUnixPort.h ../generic/
解压安装expect:
tar zxvf expect-5.43.0.tar.gz;
[root@Linux ~]# cd expect-5.43
[root@Linux expect-5.43]# ./configure --with-tcl=/usr/local/lib/ --with-tclinclude=/usr/log/tcl8.4.16/generic --with-x=no
上面配置这句是关键。
按照自己的tcl安装位置修改tcl=/usr/local/lib/
修改tclinclude=/root/tcl8.4.16/generic 这个目录是上面安装tcl文件夹的目录。
make
make install
--建立连接。
ln -s /usr/local/bin/expect /usr/bin/expect
--定义别名。使用ep代替expect。
echo "alias ep='expect'" >>/root/.bashrc
本步骤也在linux redhat5.5 64位系统中安装成功。
[root@HN509-AQ-WEB log]# uname -a
Linux HN509-AQ-WEB 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
安装包以及互信脚本详细地址:
http://download.csdn.net/detail/network__yang/5886409
有什么问题可以互相探讨。
-------------------------------------------------------------------------------------------
以下是自动互信脚本的思考步骤,仅供参考。互相学习。
先删除以前的密匙。
[root@HN509-AQ-WEB .ssh]# rm -f ~/.ssh/id_rsa*
没有重复文件的生成步骤:需要3次按键。
[root@HN509-AQ-WEB .ssh]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 1
Enter passphrase (empty for no passphrase): 2
Enter same passphrase again: 3
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f2:94:41:fb:1b:26:f5:8e:43:05:0e:e0:47:ce:b4:e4 root@HN509-AQ-WEB
如果以前已经生成,则需要4不按键。
[root@HN509-AQ-WEB .ssh]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
88:b3:05:27:c3:9f:1d:a7:92:88:4b:83:b6:44:db:b8 root@HN509-AQ-WEB
此脚本只适用于,/root/.ssh/文件夹下有id_rsa和id_rsa.pub文件的情况。
[root@HN509-AQ-WEB log]# cat tmp.sh
#!/usr/bin/expect
spawn ssh-keygen -b 1024 -t rsa
expect *key*
send \r
expect *verwrite*
send y\r
expect *passphrase*
send \r
expect *again:
send \r
interact
为了适应所有情况。建议执行前,在脚本中把id_rsa和id_rsa.pub文件删除。rm -f ~/.ssh/id_rsa*
先删除以前的密匙。
[root@HN509-AQ-WEB .ssh]# rm -f ~/.ssh/id_rsa*
没有重复文件的生成步骤:需要3次按键。
[root@HN509-AQ-WEB .ssh]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 1
Enter passphrase (empty for no passphrase): 2
Enter same passphrase again: 3
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f2:94:41:fb:1b:26:f5:8e:43:05:0e:e0:47:ce:b4:e4 root@HN509-AQ-WEB
执行脚本。
[root@HN509-AQ-WEB log]# cat tmp.sh
#!/usr/bin/expect
spawn ssh-keygen -b 1024 -t rsa
expect *key*
send \r
expect *empty*
send \r
expect *again:
send \r
interact
传输公匙文件,这里是直接传输~/.ssh/到对端。由于对端可能没有~/.ssh/文件夹,还需要建,所以直接传输文件夹。
[root@HN509-AQ-WEB log]# cat tmp.10.7.1.29.sh
#!/usr/bin/expect
spawn scp -r /root/.ssh root@10.7.1.29:~/
expect *assword*
send \r
expect *assword*
send thinker\r
interact
如果是一台没有登陆过的服务器,在本机的know_hosts里面由于没有相应的公匙,所以会提示是否增加这个文件。
先删除本机的know_hosts文件,
rm -f ~/.ssh/known_hosts
修改自动脚本。
spawn scp -r /root/.ssh root@10.7.1.31:~/
The authenticity of host '10.7.1.31 (10.7.1.31)' can't be established.
RSA key fingerprint is 94:91:b1:7c:77:54:b9:72:c8:57:ca:c8:ec:20:7f:8c.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
[root@HN509-AQ-WEB log]# cat tmp.10.7.1.29.sh
#!/usr/bin/expect
spawn scp -r /root/.ssh root@10.7.1.29:~/
expect *yes*
send yes\r
expect *assword*
send \r
expect *assword*
send thinker\r
interact
linux自动交互工具expect,tcl安装和安装包,以及自动互信脚本的更多相关文章
- Linux进程管理工具Supervisor的安装配置
目录 Linux进程管理工具Supervisor的安装配置 简介 安装Python包管理工具 安装Supervisor 配置 配置文件参数说明 配置进程管理 启动supervisor 控制进程 交互终 ...
- 绿色版plsql安装和安装包
转: 绿色版plsql安装和安装包 2018年08月07日 19:53:15 YoungLee16 阅读数 4890 最近在使用数据库的时候,或多或少的会出现一些问题,下面总结下如何安装ORACL ...
- shell自动交互之expect脚本_转
转自:linux expect详解(ssh自动登录) shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 ...
- Linux批量部署工具Expect
既然没有遇到过,做好准备总是好的.这是自己送给自己的话,现在运维做自动话越来越多,自己就学以下,记录笔记.目前主流的有puppet.Expect.pssh等等,今天就用Expect做自动部署和日常管理 ...
- Linux自动化命令工具expect
expect是Unix系统中用来进行自动化控制和测试的软件工具,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等. 用法 Linux中我们经常写脚本处 ...
- Linux进程管理工具 Supervisord 的安装 及 入门教程
Supervisor是一个进程管理工具,官方的说法: 用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断.当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了 ...
- Linux 网络性能测试工具 iperf 的安装和使用
简介:Iperf是一个网络性能测试工具.可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失.Iperf在Linux和windows平台 ...
- Kali Linux中下载工具Axel的安装和使用
前言: Axel是一个多线程的HTTP/FTP下载工具,支持断点续传. Axel的安装 apt-get install axel Axel的卸载 apt remove axel 安装完成之后输入 ax ...
- ubuntu linux断点续传下载工具 uGet 的安装
网址 http://ugetdm.com/downloads-ubuntu 使用命令行安装 sudo add-apt-repository ppa:plushuang-tw/uget-stable s ...
随机推荐
- Lenovo k860i 移植Android 4.4 cm11进度记录【下篇--实时更新中】
2014.8.24 k860i的cm11的移植在中断了近两三个月之后又開始继续了,进度记录的日志上一篇已经没什么写的了,就完结掉它吧,又一次开一篇日志做下篇好了.近期的战况是,在scue同学的努力之下 ...
- Java基础知识强化58:经典排序之二叉树排序(BinaryTreeSort)
1. 二叉树排序 二叉树排序的描述也是一个递归的描述, 所以二叉树排序的构造自然也用递归的: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它 ...
- Sybase常用函数
==================================常用函数===========================================字符串函数1)ISNULL(EXP1, ...
- hdu 2013
水题 AC代码: #include <iostream> using namespace std; int main() { int i,m,n; while(cin>>n) ...
- Oracle 分区表中索引失效
当对分区表进行 一些操作时,会造成索引失效. 当有truncate/drop/exchange 操作分区 时全局索引 会失效. exchange 的临时表没有索引,或者有索引,没有用includin ...
- Ghost克隆软件
克隆软件Ghost初级使用教程 一.什么是Ghost ? Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16.FAT32.NTFS.OS2等多种硬盘分区格式的 ...
- XML预定义的实体
在TSQL读取XML中一些特定的字符时出错,在XML中有些自付要用实体: 下面是五个在XML文档中预定义好的实体: < < 小于号 > > 大于号 & & 和 ...
- 在git bush中如何退出vim编辑器
写npm的pakege.json文件的files配置时,如果有不想包含的文件,那就要创建.npmignore文件排除,但windows系统又不允许创建以点开头命名的文件,咋办? 这时候就要用到linu ...
- 标准程序员系列-Github篇-初始化一个代码仓库
下面将一步步介绍怎样使用GitHub来初始化一个项目的版本控制仓库: 1. 到GitHub上注册自己的账号:https://github.com/ 2. 创建第一个代码仓库一个仓库相当于一个项目的代码 ...
- QT 串口通信 数据16进制发送
在QT中进行串口通信时,很多情况要用到发送16进制的数据.从网上找来了一段代码测试能用: static QByteArray QString2Hex(QString str) { QByteArray ...