脚本分为两个部分,一个是配置文件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
转载于:https://blog.51cto.com/3568923/1764079