私の毎週のバックアップスクリプトは、次のようないくつかのbash文で構成されています。
rsync -va /source_path/ /destination_path/
これでこれはうまく機能しますが、-v(verbose)オプションは私が望む方法で正確には機能しません。私が望むのは、スキャンしているすべてのフォルダではなく、コピーしている変更されたファイルだけを表示する必要があるということです。
たとえば、document1
フォルダーdocument2
は変更されていませんが、ファイルが変更された場合、表示は次のdocument3
ようになります。
document1/
document2/
document3/
document3/foo.txt
そのオプションを完全に省略すると、完全に-v
静かになり、何も表示されません。出力を表示したいが、rsync
document1、document2などのスキャンされた数十のフォルダではなく、コピーされるファイルである最後の行(foo.txt)にのみ興味があります。
これを行う方法はありますか?
ベストアンサー1
あなたの説明はすでにどのようにrsync
機能するかを示しています。 -v で表される唯一のファイルは、転送中または変更されるファイルです。したがって、実行されるたびにディレクトリにわずかな違いが表示されます。
これの一般的な理由は、ソースとターゲットが異なるファイルシステムにあり、所有権や権限を正確にコピーできず、各呼び出しでコピーを試みるためです。
これを確認するには(または)をrsync
使用して実行してください。これにより、ファイルが何をすべきかを決定する内容を示すコードが表示されます。所有権またはその他の情報である場合(この情報が必要でないと判断した場合)、または類似の情報との同期をオフにすることができます。-i
--itemize-changes
rsync
--no-owner