rsync は、属性は異なるが同じ変更時刻を持つファイルをコピーしません。

rsync は、属性は異なるが同じ変更時刻を持つファイルをコピーしません。

バックアップを取るために rsync を使用しています。これが私のコマンドラインです:

sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST

これはほとんどの場合うまくいきます。しかし、今日、ファイルの属性を変更して実行可能にするというシナリオに遭遇しました。好奇心から rsync を実行しましたが、そのファイルが宛先にコピーされたことは表示されませんでした。

ファイルの内容はまったく同じで、stat 出力は次のようになります。

  ファイル: `Projects/simpleFlash.py'
  サイズ: 706 ブロック: 8 IO ブロック: 4096 通常ファイル
デバイス: 802h/2050d Inode: 56961 リンク: 1
アクセス: (0755/-rwxr-xr-x) Uid: ( 1000/ pi) Gid: ( 1000/ pi)
アクセス: 2015-03-26 17:13:29.970428613 -0400
修正: 2015-02-17 00:16:44.558033934 -0500
変更: 2015-05-19 13:53:28.401164123 -0400
 生年月日: -

mtime は同じですが、ctime が異なります。同じ mtime を持つファイルに対して、rsync でファイル属性の変更を確認するにはどうすればよいでしょうか?

仕様:
rsync 3.0.9
ファイルサイズ: ext4
Linuxカーネル: 3.18.11+

答え1

マニュアルページに記載されているとおりrsync(1):

rsync は、サイズまたは最終更新時刻が変更されたファイルを検索する「クイック チェック」アルゴリズム (デフォルト) を使用して、転送する必要があるファイルを検索します。クイック チェックでファイルのデータを更新する必要がないことが示された場合、その他の保存属性 (オプションで要求される) の変更は、宛先ファイルに直接行われます。

つまり、rsync属性を転送するように指示すれば、属性は更新されます。不足している属性は権限であるとおっしゃったので、コマンド ラインに-pまたは を追加すれば--perms準備完了です。

関連情報