Linuxでのrsnapshotおよび増分バックアップのガイド
前書き
rsnapshotはPerlで記述されたバックアップツールで、rsyncをバックエンドとして利用します。rsnapshotを使用すると、ユーザーはカスタマイズされた増分バックアップソリューションを作成できます。この記事では、増分バックアップソリューションの利点、rsnapshotのインストール、構成、および使用例について説明します。
バックアップして!
最近、同僚と、データをバックアップするメリットについて話し合いました。私の同僚は、彼女の顧客の1人が最近取り組んでいたかなり長い記事をどのように失ったかを教えてくれました。私はこれが私のネットブックとrsnapshotを試す良い機会かもしれないと判断しました。このチュートリアルでは、2つのハードウェアがあることを前提とします。ホストコンピューターと宛先機器です。この投稿の大部分では、外付けハードドライブを使用します。ただし、LAN経由でファイルをバックアップするための使用法については簡単に説明します。
データのバックアップは質問するべきではなく、どのようにデータをバックアップする必要がありますか?最良の方法は何ですか?ブロックレベル(dd、partimage)、パーティションレベル(RAIDとそのすべてのバリエーション)、ファイルレベル(rsyncとその子アプリケーション)など、さまざまなバックアップ方法があります。ファイルベースのバックアップのコンテキストで、2種類のバックアップについて説明します。
通常のバックアップ、または完全バックアップは自明です。通常のバックアップは、バックアップを実行するたびにすべてのファイルをバックアップする1つの方法です。複数の通常のバックアップスキームを使用する場合の問題の1つは、通常のバックアップがかなりの容量を占めることです。たとえば、容量が20%で250ギガのハードドライブのフルバックアップを毎日1週間(データ量が変動しないと仮定して)実行すると、1週間分のバックアップに350ギガが使用されたことになります。 。ご覧のように、それは長期的には実行可能ではありません。私が好むもう1つの方法は、増分バックアップ方法です。増分バックアップは、1つの完全バックアップと、追加のバックアップの実行で構成されます。これらの追加のバックアップは、最後のバックアップ以降に変更されたバックアップファイル。ハードドライブ全体をバックアップする代わりに、最後のバックアップ以降に変更された特定のファイルのみがバックアップされます。ご想像のとおり、これははるかに効率的なプロセスです。* nixでこれを行う1つのツールは、rsnapshotです。
rsnapshotとは何ですか?
前述のように、rsnapshotは増分バックアップユーティリティです。このチュートリアルでは、rsnapshotを使用して7日間ローテーションバックアップスキームを作成する方法を示します。基本的に、rsnapshotは1つの完全バックアップを作成し、その後のバックアップでは変更されたファイルのみをバックアップします。rsnapshotの真の力は、各バックアップ間でハードリンクを利用できることです。各バックアップは完全バックアップのように見えます。実際には、新しいバックアップはそれぞれ、新しく作成または更新されたファイルで構成されます。rsnapshotはLAN経由で使用でき、cronから実行することもできます。このチュートリアルでは、両方の使用例を示します。
取り付け
rsnapshotのインストールは非常に簡単です。次のLinuxコマンドを実行するだけです。
Debian(またはUbuntu)の場合:
apt-get install rsnapshot
Fedoraの場合:
yum install rsnapshot
ArchLinuxの場合:
pacman -S rsnapshot
次に、rsnapshotを構成します。
構成
/ etcを確認します。/etc/rsnapshot.conf.defaultが存在する場合は、/ etc / rsnapshot.confにコピーする必要があります。.defaultファイルが存在しない場合は、通常の.confのバックアップを作成します。これは、後で参照する必要がある場合に役立ちます。
rsnapshot.confを開き、必要に応じて編集を開始します。rsnapshotの構成ファイルはよくコメントされています。これにより、設定がはるかに簡単になります。まず、構成ファイルの「外部プログラムの依存関係」セクションにあるすべてのアプリケーションのコメントを外します。まず、次の行のコメントを外します。
cmd_rsync /USO/bin/rsync
cmd_d /bin/D
cmd_rsnapshot_diff /USA/bin/rsnapshot-diff
rsnapshotで検索できない場合は、rsnapshot-diffの場所を変更する必要があります。正しいバイナリの問題を参照していることを確認するには:
whereis rsnapshot-diff
次に、バックアップスキームを正確に設計する方法を決定する必要があります。スキームを決定したら、「バックアップ間隔」の下にある「間隔」行を編集する必要があります。rsnapshotは、毎時、毎日、毎週、および毎月のバックアップを実行できます。私のシステムは7日間のバックアップスキームを実行していますが、ここで実行する処理を決定できます。1つの例として、毎日6時間ごとに実行されるバックアップの作成があります。これはあなた次第です。例としてセットアップを使用します。以下のスクリーンショットをご覧ください。
コメントを外す必要がある他の2行は、snapshot_root(スクリプトの先頭にあります)とバックアップ(「BACKUP POINTS / SCRIPTS」の下にあります)です。
snapshot_root $destination/ #specifies where your backups are stored
.
.
backup $source/ $hastens
#backup specifies what you what to backup, you can backup
#from multiple locations just specify multiple backup lines
バックアップラインは3つの部分で構成されます。これらの3つの部分には、「バックアップ」の宣言、ソースの場所、および急いだものが含まれます。各コンポーネントはタブで区切る必要があり、ディレクトリは/で終了する必要があります。そうしないと、rsnapshotが適切に機能しません。注目に値するもう2つの機能は、ロギング機能とrsyncのinclude / excludeファイルを使用する機能です。次の3行のコメントを外します(それに応じて修正します)。
verbose 5 #How much information should the
#actual backup relay to you?
loglevel 5 #How must information
#should be stored in the log file?
logfile $log_file_destination #Where should the logfile be stored?
おそらく.confファイルのコメントを読んで気づいたように、詳細度は1〜5の範囲で、5が最も詳細です。最初はこれを有効にして、すべてが正常に実行されているかどうかを確認します。このレベルの制御は役に立ちます。問題が発生した場合は、デバッグを実行することができます。
前述のように、rsyncインクルードファイルとエクスクルードファイルを使用することもできます。以下はエクスクルードファイルの例です。
#EXCLUDE
#not to backup alongside ~
- /home/javier/data/
- /home/javier/$dest/
インクルードファイルは本質的に似ています。「-」の代わりに「+」を使用して、含めるデータを示します。インクルードファイルまたはエクスクルードファイルを使用する場合は、include_file / exclude_file行を確認してください。以下は、これらのオプションを示すrsnapshot.confの私のセクションです。
include_file /home/javier/backup/include.lst
exclude_file /home/javier/backup/exclude.lst
この時点まで続けていれば、rsnapshotはほぼ構成されています。rsnapshotの終了前または終了後に何かを実行する場合は、cmd_preexecおよびcmd_postexec行を確認してください。これらの行のコメントを外して、必要に応じて、バックアップの完了前または完了後に実行するスクリプトを指定できます。そうでない場合は、設定ファイルの編集が完了しています。次のlinuxコマンドを実行します。
rsnapshot configtest
下のスクリーンショット:
このコマンドは、rsnapshotを実行し、rsnapshot.confの健全性チェックを実行するように指示します。すべてが問題なければ、「Syntax OK」という出力が得られるはずです。出力を読み取らない場合は、出力が表示され、必要に応じてrsnapshot.confを編集します。
使用例
rsnapshotを使用する3つの形式について説明します。これらのフォームには、ローカル、リモート、および(cronを介した)自動化が含まれます。使用方法は、ローカル実行とリモート実行の間で必ずしも異なる必要はありません。むしろ、構成ファイルの違いを指摘します
ローカルでのrsnapshotの使用
ローカルバックアップの場合、2つの重要な行は次のとおりです。
snapshot_root $dest/
backup $source/ $hostname/
バックアップする各ディレクトリを参照する複数の行を作成するだけで、複数のバックアップソースを指定できます。
実際にバックアップを実行するには、次のLinuxコマンドを発行します。
rsnapshot daily
オプションとして、毎時、毎週、毎月を使用することもできます。各コマンドは、指定された操作に従ってバックアップディレクトリを作成します。バックアップの場所を参照すると、次のように表示されます。
[[email protected] backupdir]# ls
daily.0 daily.1 log
上記の出力は、7日間のバックアップスキームのバックアップが2つ作成されていることを示しています。
リモートバックアップ
rsnapshotのリモートバックアップ機能を利用するには、リモートの場所をバックアップソースとして指定するだけです(リモートバックアップを有効にするには、サーバーでsshを有効にする必要があります。ここでは、鍵ベースの認証が最良のオプションです)。
backup This email address is being protected from spambots. You need JavaScript enabled to view it.:/home/ example.com/
バックアップする場所としてリモートソースを指定したら、rsnapshotを実行します。以下の例:
rsnapshot hourly
Cronによる自動化
cronの使用経験がある場合、スナップショットを使用してエントリを追加するには、特定のコマンド(例: "rsnapshot hourly")とcronの関連構文を追加するだけです。ここではいくつかの例を示します。
20 23 * * * /usr/bin/rsnapshot daily # daily backup is ran at 11:20 pm
05 23 * * 7 /usr/bin/rsnapshot weekly # weekly backup is ran at 11:05 pm
# on Sunday
バックアップ間のローテーションとの競合を防ぐために、(上記のように)小さいバックアップの前に大きいバックアップをスケジュールすることをお勧めします。さらに、各ジョブ間の競合を回避するために、大きいバックアップと小さいバックアップの間にギャップを作成することをお勧めします。
rsnapshotの他の用途
rsnapshotには、他にもいくつかの便利な機能があります。たとえば、次のLinuxコマンドを実行できます。
rsnapshot du
使用しているディスク容量を確認します(duは/etc/rsnapshot.confでコメント解除する必要があります)。下のスクリーンショット:
次のコマンドを実行して、バックアップ間の変更を比較できます。
rsnapshot diff daily.0 daily1
次のスクリーンショットのような出力が表示されます。
追加機能については、rsnapshotのマニュアルページを参照してください。
トラブルシューティング
Lchownに関する問題が発生した場合は、次のLinuxコマンドを実行します。
perl -MCPAN -e 'install QC(Lchown)'
結論
このチュートリアルを正常に完了すると、高品質のバックアップスキームが整います。その他のドキュメントについては、rsnapshotのマニュアルページと、そのホームページを参照してください。いくつかのフォーマットで利用できる優れたハウツーが含まれています。さらに、rsync(rsnapshotのバックエンド)、rdiff-backup、partimage、およびddを含む他のバックアッププログラムをチェックアウトすることをお勧めします。