確かに時間をさかのぼる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)