上传到不同服务器脚本
一个分片上传的脚本:
#!/bin/sh source ./shard.properties for i in {0..7} do echo "[`date`] scp $i start" targetUrlPath=`eval echo '$'"shard${i}"` host=$(echo $targetUrlPath|awk -F ':' '{print $1}') targetPath=$(echo $targetUrlPath|awk -F ':' '{print $2}') uploadPath=`eval echo $targetPath|awk -F '/' '{newPath=substr($0,0,length($0)-length($(NF-1))-1);print newPath"bak";}'` remoteCmd=`eval echo mkdir -p $uploadPath` ssh $host `eval echo $remoteCmd` scp -o StrictHostKeyChecking=no -l 400000 externalhour/shard/${i}/external_adproduct ${host}:${uploadPath}/. remoteMvCmd=`eval echo mv ${uploadPath}/external_adproduct ${targetPath}external_adproduct` echo ${remoteMvCmd} ssh $host "${remoteMvCmd}" echo "[`date`] mv end" done
分片配置文件:
shard0=xx.xx.xx.xx:/home/search/data0/ shard1=xx.xx.xx.xx:/home/search/data0/ shard2=xx.xx.xx.xx:/home/search/data0/ shard3=xx.xx.xx.xx:/home/search/data0/ shard4=xx.xx.xx.xx:/home/search/data0/ shard5=xx.xx.xx.xx:/home/search/data0/ shard6=xx.xx.xx.xx:/home/search/data0/ shard7=xx.xx.xx.xx:/home/search/data0/
服务器文件为ip列表:
172.1.1.1 172.1.1.2 172.1.1.3地址固定,可这么写 :
#!/bin/sh #要更新的文件 fileName=xx #机器列表 for line in `cat ips.txt` do host=$line #目标路径 targetPath="~/xx/" #备份路径 bakPath="~/xx/bak/" #创建备份路径命令 bakCmd="mkdir -p $bakPath" #创建备份路径 ssh $host $bakCmd #备份文件后缀名 bakSuffix=".`date +%Y%m%d_%H%M%S`" #远程备份命令 remoteBakCmd="cp ${targetPath}/${fileName} ${bakPath}/${fileName}${bakSuffix}" #执行备份命令 ssh $host $remoteBakCmd #上传文件 scp -o StrictHostKeyChecking=no -l 400000 ${fileName} ${host}:${targetPath}/${fileName} done
相关阅读
评论: