I need to scp the files from machineB
and machineC
to machineA
. I am running my below shell script from machineA
. I have setup the ssh keys properly.
If the files are not there in machineB
, then it should be there in 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
Now my question is if you take a look into my above scp command, I have [$el]
for now (which is wrong), I need to replace this with PARTITION
, which means I need to iterate PARTITION
and replace [$el]
with each number in PARTITION.
So my scp command should look like this if I iterate PARTITION
one by one –
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/.
Problem Statement:-
- How do I iterate PARTITION in such a way, so that I can make the above SCP command?
- And also, as you can see, I am copying the files one by one into
machineA
/data01/primary/
folder. Is there any better way of doing this? Meaning, can I copy all the files together in one shot instead of doing it one by one?
Best Answer
You can iterate over the PARTITION array like this