SCP によってあるサーバーから別のサーバーにコピーされたファイルのリストを取得しようとしていますが、コマンドがread
ループ内で正しくビルドされていないようです。
diff_tapes.txt
次のように、コピーするファイルのリストを含むファイルがあります。
/VAULT14/TEST_V14/634001
/VAULT14/TEST_V14/634002
/VAULT14/TEST_V14/634003
/VAULT14/TEST_V14/634004
などなど...
私が使用しているbashコマンドラインは次のとおりです。
while read line; do scp -p bill@lgrdcpvtsa:$line $line;done < /home/bill/diff_tapes.txt
コマンドラインからそれを実行すると(私はCentOSで実行しているので、基本的にはRed Hatです)、次のようになります:
/VAULT14/TEST_V14/634001: No such file or directory
...すべてのファイルに対して。
-v
詳細情報を取得するためにスイッチを追加して再度実行すると、次のように表示されます。
debug1: Sending command: scp -v -p -f /VAULT14/TEST_V14/634001
リモート サーバー (lgrdcpvtsa) には、問題のファイルが間違いなく含まれています。
[bill@LGRDCPVTSA TEST_V14]$ pwd
/VAULT14/TEST_V14
[bill@LGRDCPVTSA TEST_V14]$ ls -ll
total 207200
-rw------- 1 bill bill 27263700 Apr 26 11:16 634001
-rw------- 1 bill bill 27263700 Apr 26 11:16 634002
-rw------- 1 bill bill 27263700 Apr 26 11:16 634003
-rw------- 1 bill bill 27263700 Apr 26 11:16 634004
$line
scp コマンドを 2 回目に使用したかのように、無視されます。
構文の何が問題なのか分かりますか?
編集:
わかりやすくするために、ファイルのリストは次のようになります。
/VAULT14/634100_V14/634001
/VAULT11/601100_V11/601011
/VAULT12/510200_V12/510192
/VAULT10
両方のサーバーに存在するため、/VAULT14
次のフォルダー ノードが存在しない可能性があります。
これらのファイルは、ローカル マシンとリモート マシンで異なるというフラグが付けられたファイルであるため、正しいデータ ソースであるリモート マシンからコピーするため、ここでは再帰的なコピーは機能しません (-r
スイッチは以前のテストからのハングオーバーだったと思うので、上記のコードからそれを削除しました)。