4

シェル スクリプトを使用して、写真を 1 つの (Linux) ディスク パーティションから別の (バックアップ場所) に再同期するのが好きです。問題は、バックアップ場所に保存されているすべての写真を再スケーリングする必要があることです。たとえば、mogrify.

rsync によって同期/コピーされるすべてのファイルを後処理することは可能ですか? mogrifyすべての同期ファイルで実行するには?

別の方法では、rsync (のみ) を使用して、同期する必要があるファイルのリストを生成できます。次のステップ:mogrifyスケーリングされた写真をバックアップ場所に出力するために、すべてのリスト エントリに対してループを実行します。

問題は、写真を保存する前に、元のフォルダー構造を維持するためにすべてのディレクトリと子ディレクトリを追加する必要があることです。

rsync を使用すると、フォルダの作成が「その場で」処理されます。

では、rsync で同期されたすべてのファイルに対してコマンドを実行することは可能ですか?

4

1 に答える 1

4

rsync-i/--itemize-changesフラグがあり、各ファイルで行うことの履歴書を出力します。

少し試してみることをお勧めします。>f+++++++++ file1新しいファイル、>f..T...... file1変更されていないファイル、>f.sT...... file1更新などの行が出力されるのを見ています...

grepこれで、この出力を変数に読み込み、これをandで解析できますcut

#!/bin/bash
log=$(rsync -i rsync-client/* rsync-server/)
newFiles=$(echo "$log" | grep '>f+++++++++' | cut -d' ' -f2)
for file in $newFiles
do
    echo "Added file $file"
done
于 2012-11-23T23:12:57.397 に答える