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
第三步,在本机创建公钥和私钥,可以免密进行。
# ssh-******
可以一直回车,这样就免密了。
在当前用户下的.ssh/目录下有2个文件生成。不用改。
完事之后直接运行copy.exp
# ./copy.exp
这样就将 本机的私钥全部copy到其他设备上。
最后进行pssh 命令进行操作。
可以参考我之前的笔记: