1、安装expect
yum install expect
2、设置服务器地址,用户名,密码,源路径,目标路径
新建文件host.txt添加如下内容
192.168.0.135 root 密码 源路径 目标路径
192.168.0.136 root 密码 源路径 目标路径
192.168.0.137 root 密码 源路径 目标路径
3、添加expect执行脚本: cpExeShell.sh
#!/usr/bin/expect -f
set HOST [lindex $argv 0]
set USERNAME [lindex $argv 1]
set PASSWD [lindex $argv 2]
set source [lindex $argv 3]
set target [lindex $argv 4]
spawn scp -r $source $USERNAME@$HOST:$target
expect {
"(yes/no)?"
{
send "yes\n"
expect "*assword:" { send "$PASSWD\r" }
}
"*assword:"
{
send "$PASSWD\r"
}
}
expect eof
4、添加shell脚本执行expect脚本:exeScp.sh
#!/bin/bash
dir=/home
while read line
do
host=`echo $line| awk '{print $1}'`
username=`echo $line | awk '{print $2}'`
passwd=`echo $line | awk '{print $3}'`
source=`echo $line | awk '{print $4}'`
target=`echo $line | awk '{print $5}'`
$dir/cpExeShell.sh $host $username $passwd $source $target
done < $dir/host.txt
5、赋予sh文件执行权限
chmod +x *.sh
6、执行
./exeScp.sh
说明:此处有三个文件均在home文件夹下,如需要发送其它文件夹到目标服务器,只需更改或增加host.txt文件中内容即可
版权声明:本文为liushimiao0104原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。