脚本分为两个部分,一个是配置文件a.conf,一个是sh脚本。用户只要根据自己的需要,在a.conf中增加条目就可以了。

    大家很容易发现,这个脚本只需要修改scp中的目标地址和源地址对调,就变成批量服务器下载脚本了。使用于搜集日志,文件等。

    用了expect,运行这个脚本的系统中需要先yum install expect , 这个自动输入scp脚本的一般都是用这个。 



[root@szyumserver readline]# cat a.conf 

目标IP       root密码  端口    本地地址    目标地址

192.168.10.91  123.com  22  /root/readline   /home

192.168.10.94   123.com 22      /home/       /home

192.168.10.91   123.com 22      /home      /home



[root@szyumserver readline]# cat multi-upload.sh 

#!/bin/bash

#配置文件务必按照要求严格填写  IP     root密码  端口  本地文件绝对路径   目标地点绝对路径 

i=0

cat a.conf|while read line; do

let i+=1

ip=`awk 'BEGIN {split("'"$line"'",arr);print arr[1]}'`

passwd=`awk 'BEGIN {split("'"$line"'",arr);print arr[2]}'`

port=`awk 'BEGIN {split("'"$line"'",arr);print arr[3]}'`

local_dir=`awk 'BEGIN {split("'"$line"'",arr);print arr[4]}'`

goal_dir=`awk 'BEGIN {split("'"$line"'",arr);print arr[5]}'`

echo "正在处理第$i条任务"

/usr/bin/expect <<-EOF

set time 300

spawn scp  -r -p$port $local_dir root@$ip:$goal_dir

expect {

"*yes/no" { send "yes\r"; exp_continue }

"*password:" { send "$passwd\r" }

}

set timeout 500

expect eof

EOF

done