下面是我的shell腳本的片段,其中我正在執行scp命令將文件從machineB
複製到machineA
。檢查scp命令的狀態代碼,如果它失敗,然後在另一臺機器上調用scp
for element in ${x[$key]}; do # no quotes here
printf "%s\t%s\n" "$key" "$element"
if [ $key -eq 0 ]
then
scp [email protected]:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/.
fi
done
我將在下文提到一個很簡單的問題 -
如果我的shell腳本以上scp命令給了我這個錯誤不管是什麼原因 - No such file or directory
然後我需要從machineC
嘗試做scp
併爲scp命令將是這樣的,只有機器將會有所不同,其他的一切都會一樣的 -
scp [email protected]:/data/be_t1_snapshot/20131215/t1_$element_5.data /data01/primary/.
所以我的問題是如何檢查T的輸出他上面的scp命令在我的shell腳本中,然後決定是否需要從machineC調用scp命令?有什麼地位的東西,我可以用來檢查,如果它因任何原因失敗,然後我可以在machineC上調用scp命令?
這是可能的shell腳本來完成?
也許Rsync是您正在尋找的解決方案。它可以幫助您同時在網絡上同步兩個目錄。 –
或Unison - 我在博客上發帖:http://www.linuxintro.org/wiki/Unison。它也可以通過網絡以非圖形方式工作(因爲您需要一個shell腳本)。 –