私のプログラムは、各ディレクトリに対してrsyncを使用して、ソースからターゲットに複数のディレクトリをコピー/同期します。各ディレクトリについて、ターゲットのバージョンがソースとは異なり、rsyncがターゲットを変更した場合は、「ディレクトリXがターゲットに同期されました」などのメッセージでユーザーに通知したいと思います。一方、ターゲットバージョンがすでにターゲットと同じである場合、ターゲットは変更されていないため、このメッセージの表示をスキップできます。
終了状態と -n オプションは両方のケースを区別しません。 -vの出力を解析する以外に、rsyncにこの情報を提供させる他の方法はありますか?
答え1
これにより操作が実行されます。
rsync --log-format=%f ...
rsyncは、ファイルの内容が更新されるときだけでなく、属性が変更されるたびにファイルを出力します。
すべての変更を項目ごとに表示する-i
オプション(または)もあります。--log-format=%i
出力形式の詳細については、rsync のマニュアルページを参照してください。