正しい権限でRSnapshotバックアップからファイルを復元する方法

正しい権限でRSnapshotバックアップからファイルを復元する方法

Debian の新しいバージョンをインストールしました。home私のバックアップバージョンを使用していくつかのファイルも復元したいと思いますetc。バックアップは rsnapshot を使用して作成されました。

不明なのは、どのユーザーから復元コマンドを実行する必要があるかです。たとえば、見てみましょう。私のrsnapshotファイルを回復したいとしましょう/etc/cron.d/。デフォルトでは、新しくインストールされたバージョンには次の権限が表示されます。

station:~$ ls -l /etc/cron.d/rsnapshot 
-rw-r--r-- 1 root root 472 Mar 26  2016 /etc/cron.d/rsnapshot

この場合、rootまたはsudoでrsyncコマンドを実行する必要があります。つまり、テスト中です。

@thinkstation:~$ rsync /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest

ただし、これにより次の権限が発生します。

station:~$ ls -l /etc/cron.d/rTest 
-rwxr-xr-x 1 root root 513 Sep 24 19:01 /etc/cron.d/rTest

これはシステムのデフォルト値と一致しません。

もっと残念なもう一つの例です。通常のユーザー(rootではない、sudoではない)でrsyncコマンドを実行します。私が復元したファイルはgitを介してバージョン管理されたプロジェクトでした。すべてのファイルがgithubにないため、復元しました。復元後、権限の変更により多くの違いがあることを確認しました(ファイルにsudo権限が含まれておらず、私のhomeディレクトリに移動されたため理解できません)。それで、私は以前にバックアップしたときに間違いをしたのか、ファイルを復元するときに間違いをしたのかわかりません。とにかく、この問題を解決する方法を知りたいです。

答え1

あなたは言わなければなりません同期権限を復元したいです。これに基づいて、man 1 rsync次のオプションを使用して個々のファイルを回復することをお勧めします。

-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-o, --owner                 preserve owner (super-user only)
-g, --group                 preserve group

-a通常、個々のファイルに必要なものよりも多くのオプションを含むrsyncベースのバックアップからコンテンツを復元することをお勧めします。したがって、コマンドは次のようになります。

rsync -ptog /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest

または、長いオプションを使用してください。

rsync --perms --times --owner --group /media/3985DAA24356D774/rsnapshot/station/daily.0/etc/etc/cron.d/rsnapshot /etc/cron.d/rTest

--ownerを指定したので、--group両方のユースケースで機能します。

個々のファイルではなくディレクトリを繰り返し復元したい場合は、コピーされた内容を知らせる-athisと共にこのオプションが役に立ちます。-v

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity

関連情報