特定のファイルのリストのみを別のサーバーの同じ場所に同期する方法

特定のファイルのリストのみを別のサーバーの同じ場所に同期する方法

ファイルのリストがあります:/location/file.txt

文書の内容:

/location1/file2.abc
/location2/location3/file1.abc
/location4/location5/fileX.cde

次のようにファイルを別のサーバーにコピーしたいと思います。

cat /location/file.txt | xargs -i scp {} user@server:/location

しかし、上記の例では、リスト内のすべてのファイルが特定の場所にコピーされ、同じ場所(txtファイル/location1/、/location2/location3/などの正確なパス)にコピーしたいと思います。

どうすればいいですか? rsyncを使用することもできますが、(リモートサーバー用)パスワードを一度だけ入力したいと思います。

答え1

rsync -av --files-from=/location/file.txt / user@server:/location/

/location1/file2.abcこれにより、ローカルファイルが背中にコピーされます/location//location1/file2.abc

rsync一度だけ呼び出されるので、sshパスワードは一度だけ入力できます。ただし、SSHキーを使用して調査することもできます。

関連情報