rsync テスト実行統計の絶対パス

rsync テスト実行統計の絶対パス

rsync実行後にリモートサーバーに送信されるファイルのリストを取得するために、次のコマンドを実行しました。

rsync -avzm --stats --safe-links --ignore-existing --dry-run --human-readable /tmp/test REMOTE-HOST:/tmp/data/ >> /tmp/transfer.log

ファイルリスト(すべてのPDF)を取得するには、次のコマンドを実行しました。

grep 'pdf$' transfer.log > files.txt

ファイルの絶対パスを表示できません。

test/2103/0E/210321449902_NR_1/210321449902-1-A4-NB.pdf
test/2103/0E/210321481320_NR_1/210321481320.AKPML.pdf
test/2103/0E/210321779915_NR_1/210321779915-1-A4-NB.pdf
test/2103/0E/210321959975_NR_1/210321959975-01-A4-NB.pdf

rsyncファイルの絶対パスを取得するために練習を実行するときにどのようなオプションを使用する必要がありますか?

GNUを使用してファイルを一覧表示し、複数のファイルを実行できるようにこのファイルのリストを使用する必要がありますcat。 (良いrsyncparallelこれ質問)

答え1

パスはソース(および宛先)に基づいて報告されます。あなたの場合は指定されたソースルートがあるので、フルパスを生成するには、/tmp/testサンプルファイルセットの前にこのプレフィックスを付ける必要があります。ただし、ソースツリー/の内容がターゲットに直接到達するようにソースツリーを終了する必要があるため、状況はそれほど簡単ではありません。ご覧のとおり、実際のプレフィックスはまさに/tmpそれ/tmp/testであり、testコピーされたファイルに含まれています。だから...

sedこれには他の適切なツールを使用できます。

sed -n '/pdf$/s!^!/tmp/!p' transfer.log > files.txt
#                 ^^^^^ the transfer prefix

cat files.txt
/tmp/test/2103/0E/210321449902_NR_1/210321449902-1-A4-NB.pdf
/tmp/test/2103/0E/210321481320_NR_1/210321481320.AKPML.pdf
/tmp/test/2103/0E/210321779915_NR_1/210321779915-1-A4-NB.pdf
/tmp/test/2103/0E/210321959975_NR_1/210321959975-01-A4-NB.pdf

答え2

--out-formatオプションを使用してすべてのフォーマットを指定できます。

あなたの場合は、--out-format='/%f%L'コマンドに以下を追加します。

rsync -avzm --stats --safe-links --ignore-existing --dry-run --human-readable --out-format='/%f%L' /tmp/test REMOTE-HOST:/tmp/data/ >> /tmp/transfer.log

関連情報