今回はLinuxのバックアップ方法をいくつか掲載していきます。
以前、バックアップに使用されるrsync
コマンドについて紹介しましたが、今回はLinuC Level2の試験対策と個人用サーバーのバックアップ方法を検討する目的で様々なバックアップ方法を掲載します。
#バックアップの種類
##フルバックアップ
バックアップ対象を全てバックアップする方法です。
毎回全てをバックアップに含めるので2回目以降に実施したバックアップの内容はオリジナルと完全一致します。
ただし、2回目以降のバックアップも最初のバックアップと同じくらい時間がかかります。
##差分バックアップ
前回のバックアップ以降で新たに作成、または更新されたファイルやディレクトリのみバックアップ対象となります。
そのため、フルバックアップに比べて2回目以降のバックアップの時間は少なく済みます。
当然リストアの際には最後のフルバックアップ分と最新の差分バックアップ分のバックアップが必要になります。
##増分バックアップ
フルバックアップ、差分バックアップ含めて最後に実施したバックアップに対して新たに作成、または更新されたファイルやディレクトリのみバックアップ対象とします。
差分バックアップよりもさらにバックアップの時間が少なくなりやすいですが、その代わりリストア時には最後に実施したフルバックアップとそれ以降の差分、増分バックアップのファイル全てが必要となります。
#バックアップに使われるコマンド
各コマンドの全てのオプションについてはコマンドで検索すれば出てくるはずですので、本ページでは主にバックアップ・リストア向けのオプションを掲載しています。
##tarコマンド
tar
コマンドは指定したファイルやディレクトリからアーカイブを作成するコマンドですが、バックアップの手段として使われる事もあります。
tarコマンドのオプションは-
を省略できます。
基本(無圧縮):
tar cvf <アーカイブ作成先> <バックアップ対象ディレクトリ> #vオプションを抜くと詳細情報を表示しない
圧縮する場合:
tar czvf <アーカイブ作成先> <バックアップ対象ディレクトリ> #gzipで圧縮する bzip2ならzをjに、xzならzをJに変える
差分バックアップを行う:
tar czuvf <アーカイブ作成先> <バックアップ対象ディレクトリ> #アーカイブ作成先にある同名のアーカイブファイル内よりも新しいファイルのみアーカイブファイルへ追加
リストアする:
tar xavf <バックアップアーカイブファイル> -C <展開先ディレクトリパス> #aオプションでアーカイブファイルの拡張子から自動でアーカイブの圧縮形式を判別する
##ddコマンド
dd
コマンドは指定したファイルをブロック単位で読み込みし、指定した形式でファイル出力します。
デバイス全体のバックアップも可能なので、とても簡単です。
dd
コマンドはif=
で処理対象ファイルを指定し、of=
で書き込むファイルを指定します。
書式はdd if=<対象ファイル> of=<出力ファイル>
が基本となり、ifとofの順番はこの通りでなくてはなりません。
また、ifとofで指定する内容が逆になってしまうと、バックアップ対象の内容が破損してしまうので、注意が必要です。
オプションはifの前でもofの後でも通ります。
デバイス全体バックアップ:
dd if=/dev/sdX of=/dev/sdY #sdXはバックアップ対象デバイスで、sdYはバックアップ先のデバイス
isoファイルにまとめる場合:
dd if=/dev/sdX of=/dev/sdY/sdX.iso #sdXはバックアップ対象デバイスで、sdYはバックアップ先のデバイス
isoファイルからリストアする場合:
dd if=/dev/sdY/sdX.iso of=/dev/sdX #上記コマンドのifとofの対象を入れ替えるだけ
一度に読み書きするサイズを指定する場合:
dd if=/dev/sdX of=/dev/sdY bs=1024 #単位はバイト
##dumpコマンド
dump
コマンドはext2,ext3,ext4のファイルシステムをバックアップするためのコマンドです。
リストアする場合はそのまんま、restore
コマンドが該当します。
主にテープデバイスでバックアップするために使われるコマンドの様なので、他のバックアップコマンドと比べてあまり使う機会は無いかもしれませんが、LinuC Level2出題範囲のようなので。
基本(フルバックアップ):
dump -f <バックアップファイル名> <バックアップ対象ディレクトリ> #
圧縮する場合:
dump -zf <バックアップファイル名> <バックアップ対象ディレクトリ> #zはgzip形式、jはbzip2形式で圧縮を行う
増分バックアップを行う:
dump -uzf <バックアップファイル名> <バックアップ対象デバイス> #2回目以降は-1uzfという具合に差分レベル<1~9>を指定する
#2回目以降もバックアップレベルを常に1に指定すると差分バックアップとなるが、以降差分レベルを1ずつ増やしていくと増分バックアップになる
リストアする場合は、以下の通りです。
restore rf <バックアップ格納先ディレクトリパス> #バックアップファイルが格納されているディレクトリ内の全てのバックアップを対象とする
ローカル上でバックアップを実施する場合のコマンドの一例は以上です。
ネットワーク越しにバックアップするための方法はこちらに掲載しています。