BackInTime / rsyncを使用して権限を復元する方法は?

BackInTime / rsyncを使用して権限を復元する方法は?

確かに時間をさかのぼるrsyncを使用すると、ファイルを復元するときに権限を復元できるだけでなく、データに個別に保存することもできます。特定のディレクトリ/ファイルに対する権限のみを復元できますか?どのファイルも復元せずに、ファイルに対する以前の権限のみを復元したいと思います。

これは可能ですか?
そうでない場合の最善の方法は、ファイルをバックアップと比較し、手動で実行して権限変更リスト(関連質問)を作成することです。

私はDebian 9.1とKDEを使用しています。

答え1

牛に似た一種の栄養chmod参照文書を入手できます。

--reference=RFILE
use RFILE's mode instead of MODE values

などのフォルダ構造が同じままであれば、次のことができます。

cd /path/to/backup
find . -exec chmod --reference={} --changes /source/of/{} \;

/source/ofバックアップを完了するためのパス。

findこれで、必要なファイル/ディレクトリでのみ機能するテストを使用できるようになります。

を使用すると言われたので、rsyncディレクトリ構造は保存されなければならず、SSHFSなどを使用してリモートシステムをローカルにマウントできる必要があると考えるので、原則としてこれは動作しなければなりません。

答え2

rsync -ani を使用すると、権限が変更されたファイルのリストを取得できます。

rsync -ani newFile new/ | awk {'print $2'}

その後、出力を chmod にパイプし、その出力を特権変更されたバックアップのソースファイルの参照ファイルとして使用できます。

rsync -ani newFile new/ | awk {'print $2'} | xargs -I@ chmod --reference=new/@ @

ファイルを作成し、新しいディレクトリに対してrsyncを実行し、ソースファイルの権限を変更してインスタンスを再現しました。

[pijain@kuliza370 testing]$ ll
total 0
drwxrwxr-x. 2 pijain pijain 21 Aug 29 16:56 new
-rwxrwxrwx. 1 pijain pijain  0 Aug 29 16:56 newFile(origial file with 777)
[pijain@kuliza370 testing]$ ll new
total 0
-rw-rw-r--. 1 pijain pijain 0 Aug 29 16:56 newFile(backup with 644)

関連情報