centos 批量复制copy.exp的使用

主要是exp的 使用,这里提供一些简单的批量复制,主要是在没有免密的情况下,如何批量进行免密文件的批量操作。

将10.10.10.1的免**文件 复制到   10.10.10.2 -----10.10.10.200的设备上。

============================

第一步、安装expect 

直接yum 元 安装     #yum install  expect 

或者下载rpm包进行安装: expect-5.42.1-1.x86_64.rpm和expect-devel-5.42.1-1.x86_64.rpm

rpm -ivh   expect-5.42.1-1.x86_64.rpm   expect-devel-5.42.1-1.x86_64.rpm

或者下载expect-5.43.0.tar.gz 包 :

# ./configure --with-tclinclude=/usr/local/src/tcl8.4.11/generic --with-tclconfig=/usr/local/lib/
# make && make install

安装完expect验证下是否成功

# expect
expect1.1> 
expect1.1>exit

============================

第二步 写个copy.exp 的脚本文件,内容如下:

#!/usr/bin/expect
# file name :copy.exp
# Usages : copy.exp  host.lst

set f [open /home/用户名/ip_6.txt r]
while { [gets $f line]>=0 } {
    set ip [lindex $line 0]
    set pw [lindex $line 1]
    spawn ssh-copy-id -i /home/用户名/.ssh/id_rsa.pub $ip
    expect {
        "id_rsa" {send "\r";exp_continue }
        "yes/no" {send "yes\r ";exp_continue }
        "*assword:" {send "$pw\r"}
    }
    expect eof
}

exit

#########注意黄色部分是 需要对应你实际的地址和ip文件---------
----------------------------------------------------------------------------------------

创建一个txt放置  ip和密码  ,我这里命名的是 ip_6.txt,且路径为:/home/用户名/ip_6.txt

centos 批量复制copy.exp的使用

第三步,在本机创建公钥和私钥,可以免密进行。

# ssh-****** 

可以一直回车,这样就免密了。

在当前用户下的.ssh/目录下有2个文件生成。不用改。

完事之后直接运行copy.exp

# ./copy.exp

这样就将 本机的私钥全部copy到其他设备上。

最后进行pssh  命令进行操作。

可以参考我之前的笔记: