私は、Linux マシン (サーバーではない) の完全なバックアップを取り、いつでもすべてを復元する方法を見つけるためにネットを検索していました。
私は各スレッドで最も多くリンクされているガイドから始めました。http://www.mikerubel.org/computers/rsync_snapshots/index.htmlそして、このタイプのバックアップは増分バックアップだと思っていましたが、さらに1日調査した後、 rsync コマンドにおける差分バックアップと増分バックアップの違いは何ですか?などなど議論はありますが、自分が実際に何をしているのかよく分かりません。
ガイドと投稿に従って、私はsourceと呼ばれる単一のフォルダ(システム全体をバックアップする前に)で試してみることにしました。
rsync -av --delete /home/user/source /home/user/backup/backup0/
その後、いくつかのファイルを追加したり削除したりして、さらに3回バックアップを実行しました
rsync -avH --delete --link-dest=/home/user/backup/backup0 /home/user/source /home/user/backup/backup1
rsync -avH --delete --link-dest=/home/user/backup/backup1 /home/user/source /home/user/backup/backup2
rsync -avH --delete --link-dest=/home/user/backup/backup2 /home/user/source /home/user/backup/backup3
このタイプのバックアップでは、次のような結果になると考えました。
backup0-->backup1-->backup2-->backup3
つまり、「backup3」の内容を復元したい場合、#1と#2が必要になりますが、それらを削除してからbackup3を復元すると、すべてが元通りになりました。そこで、
user@user:/backup$ du -sh *
450M backup0
620K backup1
624K backup2
628K backup3
増分バックアップではなく差分バックアップのように見えますが、差分バックアップにするにはバックアップごとに設定する必要があると思いました
--link-dest=/home/user/backup/backup0
私の質問は、何か間違っているのでしょうか? rsync を使用してシステム全体をバックアップするより良い方法はありますか?
PS: 宛先デバイスは同じファイルシステムを持つ外付けドライブになります。
答え1
ハードリンクを使用すると、ファイルのコピーを複数保存でき、1 つのコピーのディスク領域のみを占有します。du
同じファイルへの複数のハードリンクによって占有される領域を二重にカウントしないように注意する必要があります。
実行する場合:
du -sh backup3
バックアップ3は450MB程度を占めることがわかります。以下を実行すると、
du -sh backup2 backup3
バックアップ 2 は約 450 MB を占めますが、バックアップ 3 はほとんど占めないことがわかります。これはdu
、最初にバックアップ 2 を調べてそのスペースをカウントしたためです。バックアップ 3 を調べたとき、カウントされたのは新しく使用されたディスク スペースのみで、バックアップ 2 で既にカウントされていたファイルへのハードリンクはカウントされませんでした。
各バックアップは完全であり、完全な復元を行うために必要なものがすべて揃っています。ただし、ファイルはハードリンクされているため、使用されるディスク容量の合計ははるかに少なくなります。
例
1.2MB のファイルをディレクトリに置きましたsrc/
。2 つのバックアップを作成しましょう。
$ rsync -a src backup1
$ rsync -a --link-dest=../backup1 src backup2
backup2 の大きさを見てみましょう:
$ du -sh backup2
1.2M backup2
バックアップ2 は 1.2 メガバイトです。では、バックアップ1 とバックアップ2 の両方のサイズを見てみましょう。
$ du -sh backup1 backup2
1.2M backup1
8.0K backup2
現在、backup2 は 8k のみのように見えます。これは、ハード リンクが二重にカウントされないためです。
答え2
ハードリンクはディスク容量を節約する最良の方法です。rsync でスクリプトを作成する代わりに、この作業を実行するラッパーを使用します。バタフライバックアップ。
このラッパーは純粋な rsync を使用し、rsync を実際のバックアップ/復元ツールに変換します (アーカイブ/エクスポート モードもあります)。
また、オプションには、--mode/-m
バックアップモードを選択できるフラグがあります。増分または差額。
差分モードでは最初のバックアップが完全に保持され、その後のすべてのバックアップがそれに接続され、ハード リンクのおかげで多くのスペースが節約されます。
例:
$ bb backup --computer mypc --destination /backup --data User --type Unix
--mode Differential