ext4からNTFSへの同期中に変更されたファイルのみを表示する


9

変更および削除されたファイルをrsyncに印刷してもらいたい。詳細オプション(-v)は、変更されたファイルだけでなく、サブディレクトリのリストも印刷します。これは、タッチされたディレクトリが変更されたと考えられるためです。多数のサブディレクトリから多数のファイルを同期するため、実際の変更を確認することは不可能です。

それで、rsyncを使用してディレクトリを印刷しない方法はありますか?

grep -v "*/$"新しいディレクトリも除外されるので、私は一種の答えを探していません。

私が使用しているコマンド: rsync -avh --delete /media/data/src /media/data/bkp

そして毎回すべてのディレクトリのリストを出力します:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

編集:わかりました、いくつかの集中的なテストの後.. ext4パーティションからext4へ、およびNTFSからNTFSへ同期するときに、すべてのディレクトリを印刷しません。これは、ext4のからNTFSに同期する際に行います。..やオプションのみ-cまたは--omit-dir-timesそれを変更しないでください。

回答:


4

--omit-dir-timesスイッチを使用してディレクトリ時間を無視してみることができます(rsyncのマニュアルページをご覧ください)。

個人的に-cは、スイッチを使用することが、内容が変更されたファイルのみが出力に表示されるようにするための最良の方法であると思います。

を使用-cすると、rsyncが遅くなることに注意してください。


返信いただきありがとうございます。私はそれがネイティブにサポートされていないことを信じがたいと思っています。少なくともパフォーマンス(またはオプション)を失うことはありません。
qox

申し訳ありませんが、私の編集により、回答後に質問が変更されました。
qox

1

マウントタイプを変更する代わりに、rsyncに、サポートしていないファイルシステムにコピーするときにファイルのアクセス許可を無視するように指示することもできます。次のコマンドでうまくいきます。

rsyncのmanページから:

要約すると、宛先ファイル(新旧両方)にソース権限を付与するには、-permsを使用します。(既存のファイルを変更せずに)新しいファイルに宛先デフォルトの許可を与えるには、-permsオプションがオフであることを確認し、-chmod = ugo = rwXを使用します(これにより、すべての非マスクビットが確実に有効になります)。この後者の動作を入力しやすくしたい場合は、この行をファイル〜/ .poptに置くなど、ポップエイリアスを定義できます(以下は-Zオプションを定義し、-no-を含めます) g宛先ディレクトリのデフォルトグループを使用するには):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

-aは使用しないでください。-p-o -gが含まれています。


必要に-a応じて引き続き使用でき、--no-o --no-p --no-g所有者、グループ、および権限を追加して省略できます。
Ian Dunn

0

許可の問題だったようです。理由はわかりませんが、NTFSパーティションの/ etc / fstabを編集したところ、期待どおりに機能するようになりました。つまり、変更されていないディレクトリは印刷されません。

古いfstabエントリ:ntfs-3g users、defaults、exec、uid = 1000 0 0

新しいfstabエントリ:ntfs-3g users、defaults、exec、uid = 1000、gid = 1000、dmask = 077、fmask = 137 0 0

(だれが..を知っていると思います)dmask = 077がトリックを実行しました。つまり、「drwxrwx」ではなく「drwx ---」です。


-1

私が使用した:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

ドライラン(オプションn)です。rsync実際にファイルを転送するには、このオプションを削除します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.