我需要将文件从 scp到machineB
。我正在从 运行以下 shell 脚本。我已正确设置了 ssh 密钥。machineC
machineA
machineA
如果文件不在 中machineB
,那么它应该在 中machineC
。
#!/bin/bash
readonly PRIMARY=/data01/primary/.
readonly FILERS_LOCATION=(machineB machineC)
readonly MAPPED_LOCATION=/bat/data/snapshot
PARTITION=(0 3 5 7 9)
dir1=/bat/data/snapshot/20131222
dir2=/bat/data/snapshot/20131222
scp david@${FILERS_LOCATION[0]}:$dir1/weekly_1980_[$el]_200003_5.data $PRIMARY || scp david@${FILERS_LOCATION[1]}:$dir2/weekly_1980_[$el]_200003_5.data $PRIMARY
现在我的问题是,如果你看一下我上面的 scp 命令,我[$el]
现在(这是错误的),我需要用替换它PARTITION
,这意味着我需要迭代PARTITION
并[$el]
用 PARTITION 中的每个数字替换它。
PARTITION
因此,如果我逐个迭代,我的 scp 命令应该是这样的-
scp david@machineB:/bat/data/snapshot/20131222/weekly_1980_0_200003_5.data /data01/primary/. || scp david@machineC:/bat/data/snapshot/20131222/weekly_1980_0_200003_5.data /data01/primary/.
scp david@machineB:/bat/data/snapshot/20131222/weekly_1980_3_200003_5.data /data01/primary/. || scp david@machineC:/bat/data/snapshot/20131222/weekly_1980_3_200003_5.data /data01/primary/.
scp david@machineB:/bat/data/snapshot/20131222/weekly_1980_5_200003_5.data /data01/primary/. || scp david@machineC:/bat/data/snapshot/20131222/weekly_1980_5_200003_5.data /data01/primary/.
scp david@machineB:/bat/data/snapshot/20131222/weekly_1980_7_200003_5.data /data01/primary/. || scp david@machineC:/bat/data/snapshot/20131222/weekly_1980_7_200003_5.data /data01/primary/.
scp david@machineB:/bat/data/snapshot/20131222/weekly_1980_9_200003_5.data /data01/primary/. || scp david@machineC:/bat/data/snapshot/20131222/weekly_1980_9_200003_5.data /data01/primary/.
问题陈述:-
- 我如何以这种方式迭代 PARTITION,以便可以执行上述 SCP 命令?
- 而且,如您所见,我正在将文件逐个复制到
machineA
/data01/primary/
文件夹中。有没有更好的方法?意思是,我可以一次性复制所有文件,而不是逐个复制吗?
答案1
您可以像这样迭代 PARTITION 数组
for el in "${PARTITION[@]}"
do
echo "$el"
done
答案2
我建议你考虑rsync
完成这项任务,因为它为这种类型的备份提供了更全面的功能。你可以从机器 A 执行此操作,将其指向 B 和 C 上的快照目录,这样你的整个快照目录都会被镜像。
然后,您可以使用cron
它按照设定的时间间隔进行安排。 scp
非常适合一次性复制,但您的场景听起来像是常规备份作业。 rsync
还可以通过标准 SSH 端口进行通信,因此如果scp
目前有效,则无需更改网络、防火墙等。
如果需要的话,您rsync
甚至可以实现在所有三台服务器上创建相同镜像的功能。