linux 安装数据库并行,linux – 如何并行化scp命令?

我需要将文件从machineB和machineC scp到machineA.我从machineA运行我的下面的

shell脚本.我已正确设置了ssh密钥.

如果文件不在machineB中,那么它应该在machineC中.我需要将所有PARTITION1和PARTITION2文件移动到machineA各自的文件夹中,如下面的shell脚本所示 –

#!/bin/bash

readonly PRIMARY=/export/home/david/dist/primary

readonly SECONDARY=/export/home/david/dist/secondary

readonly FILERS_LOCATION=(machineB machineC)

readonly MAPPED_LOCATION=/bat/data/snapshot

PARTITION1=(0 3 5 7 9)

PARTITION2=(1 2 4 6 8)

dir1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)

dir2=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[1]} ls -dt1 "$MAPPED_LOCATION"/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9] | head -n1)

length1=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[0]} "ls '$dir1' | wc -l")

length2=$(ssh -o "StrictHostKeyChecking no" david@${FILERS_LOCATION[1]} "ls '$dir2' | wc -l")

if [ "$dir1" = "$dir2" ] && [ "$length1" -gt 0 ] && [ "$length2" -gt 0 ]

then

rm -r $PRIMARY/*

rm -r $SECONDARY/*

for el in "${PARTITION1[@]}"

do

scp david@${FILERS_LOCATION[0]}:$dir1/t1_weekly_1680_"$el"_200003_5.data $PRIMARY/. || scp david@${FILERS_LOCATION[1]}:$dir2/t1_weekly_1680_"$el"_200003_5.data $PRIMARY/.

done

for sl in "${PARTITION2[@]}"

do

scp david@${FILERS_LOCATION[0]}:$dir1/t1_weekly_1680_"$sl"_200003_5.data $SECONDARY/. || scp david@${FILERS_LOCATION[1]}:$dir2/t1_weekly_1680_"$sl"_200003_5.data $SECONDARY/.

done

fi

目前,我在PARTITION1和PARTITION2中有5个文件,但一般来说它将有大约420个文件,这意味着它将逐个移动文件,我认为这可能很慢.有没有办法加快这个过程?

我正在运行Ubuntu 12.04

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值