バックアップを取るために 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
準備完了です。