第 5 章 バックアップ/リストア
5.3 バックアップ/リストアの実行
5.3.1 dump、restore コマンド
(1)バックアップ(dumpコマンド)
(a)dumpによるバックアップ対象
バックアップをするファイルシステムの選択には/etc/fstabが使用されます。fstabの第5フィールドが「1」と なっているファイルシステムがバックアップの対象となります。ただし「/」ファイルシステムは該当しません。
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
LABEL=/home /home ext3 defaults 1 2
/dev/sdb1 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
またdumpコマンドは、バックアップ対象のファイルシステムがext2またはext3でなければ理解できません。つ まりdumpコマンドでは、ReiserFSなどのファイルシステムはサポートされていません。
(1)テープデバイス
デフォルトは/dev/tapeです。
MIRACLE LINUXの場合は、テープデバイスは/dev/st*または/dev/nst*として指定します。
• /dev/st*を指定すると、テープドライブはコマンド実行後にテープの先頭まで巻き戻します。
BOT 今回のバックアップ EOF EOF
• /dev/nst*を指定すると、巻き戻しません。メディアに追記していく場合は/dev/nst*を利用します。
BOT 前回のバックアップ EOF 今回のバックアップ EOF
常に同じテープデバイスにバックアップする場合には、次のようにシンボリックリンクを作成しておくと、毎回 の指定を省略できて便利です。
# /bin/ln -s /dev/nst0 /dev/tape
5.3 バックアップ/リストアの実行
(b)dumpの使用方法
dumpコマンドはroot権限で実行します。
次に示す例では、バックアップ対象は/homeです。このバックアップ対象は一般に/etc/fstabに記述されて いるマウントポイント(ディレクトリ)か、ディスクパーティションを指定します。
/etc/fstabに記述のないファイルシステム上のファイルを指定する場合には、-uオプションは指定できず、
フルバックアップのみ実行可能です。/home/hogeのようなサブディレクトリを指定する場合も同様です。
# /sbin/dump -0u -b 20 -f /dev/nst0 /home
以下に主なオプションの説明を示します(詳細はdumpのオンラインマニュアルを参照)。
• -0~9 ―― バックアップレベルを指定します。
0を指定すると、フルバックアップを取ります。1以上の数字を指定すると、インクリメンタルバックアップを取りま す。インクリメンタルバックアップは、/etc/dumpdatesを参照して、指定されたレベルより小さいレベルのバッ クアップの日付を探し、その日から更新のあったもののみバックアップします。
• -u ―― /etc/dumpdatesファイルに記録します。
/etc/dumpdatesをエディタで編集してすべての行を削除した場合、その後dumpコマンドに-uを指定して 実行したときにコアダンプする場合があります。そのときは以下のようにして/etc/dumpdatesファイルを初期 化してください。
# /bin/rm /etc/dumpdates; /bin/touch /etc/dumpdates
• -b ―― 一度のI/Oでやりとりするブロック数を指定します。Linuxの場合、1ブロックは1KBです。
• -f ―― ダンプ出力先のファイルまたはデバイスを指定します。
(c)dumpでの差分バックアップ
dumpでの差分バックアップは、フルバックアップを取得した後に実行可能となります。あるダンプレベルが指定 されると、それより小さい数のダンプレベルでdump が実行された時刻より後に更新されたファイルだけをバックアッ プの対象にします。
# /sbin/dump -1u -b 20 -f /dev/nst0 /home
上記の例のようにレベルを1で続けていけば累積差分バックアップとなり、レベルを日ごとに増やしていけば差 分バックアップとなります。
差分バックアップをテープなどのメディアに取る際には/dev/st*では上書きしてしまうので、/dev/nst*で追 記することを忘れないように注意が必要です。また、/home/hogeのようなサブディレクトリのみの差分バックアッ プは、/etc/dumpdatesに記述されない為取得できません。
(2)リストア(restoreコマンド)
(a)restoreの使用方法
dumpコマンドで取得したバックアップはrestoreコマンドでリストアします。restoreコマンドはroot権限で実 行します。
バックアップ媒体からのフルリストアを行う一般的な使用方法は、次のとおりです。
# /sbin/restore -r -f /dev/nst0
以下に、主なオプションの説明を示します(詳細はrestoreのオンラインマニュアル参照)。
-r、-i、-x、-tは、どれか1つを指定します。
• -r ―― バックアップファイルの内容すべてを一括でリストアします。
• -i ―― 対話モードです。「restore > 」のプロンプトが表示されて、ls、add、extractなどのコマンドでファ イルの選択、リストアを行います。
• -x ―― 指定したファイルのみリストアします。
• -t ―― バックアップファイルの内容をリストします。
• -f ―― バックアップファイルまたはテープデバイスを指定します。
• -s ―― テープのアーカイブの位置を指定します。
-iの対話モードでは、次のようなプロンプトが出ます。
# restore>
この状態で、次のコマンドを使用して展開するファイルを選択、展開を実行します。
• ls ―― ファイルを表示します。
• cd ―― バックアップファイル内でディレクトリを移動します。
• add ―― ファイルを選択します。
• extract ―― ファイルを展開します。
5.3 バックアップ/リストアの実行 差分バックアップを取得している際、テープの操作が必要になります。方法はrestoreの-sオプションを使用 する方法と、mtコマンドでテープの位置を指定する方法の2種類があり、restoreコマンドは両方使用すること が可能です。
(b)restoreの-sオプションを使用する方法
restoreの-sオプションでは、現在の位置から何番目のバックアップファイルかを数字で指定します。指定す る数字は1以上です。たとえば3つのバックアップを取得済みで、現在テープの先頭にいるときに3つ目のバック アップファイルをリストアする場合には、次のように3を指定します。
# /sbin/restore -r -f /dev/nst0 -s 3
(c)mtコマンドでテープの位置を指定する方法
この方法はrestoreコマンドだけではなく、afioコマンドやtarコマンドでのリストアでも使用する方法です。
mtコマンドで現在の位置から何番目のEOFに移動するかを指定します。
mtコマンドのオプションには、次のようなものがあります(詳細はmtのオンラインマニュアルを参照)。
# /bin/mt -f /dev/nst0 status ―― テープのステータスを表示します。
# /bin/mt -f /dev/nst0 rewind ―― テープの先頭の位置に戻ります。
# /bin/mt -f /dev/nst0 offline ―― テープをイジェクトします。
# /bin/mt -f /dev/nst0 fsf n ―― n番目のEOFまでテープを先送りします。
# /bin/mt -f /dev/nst0 bsf n ―― n番目のEOFまでテープを巻き戻します。
たとえば、3つのバックアップを取得済みで、現在テープの先頭にいるときに3つ目のバックアップファイルをリ ストアする場合には、次のように2つ先のEOFを指定します。
# /bin/mt -f /dev/nst0 fsf 2
もし3つ目のバックアップの終わりのEOFの位置にいて、2つ目のバックアップをリストアしたい場合には、次の ように移動します。
# /bin/mt -f /dev/nst0 bsf 2
上記のようにテープの位置を移動した後に、次のように実行することでリストアすることが可能となります。
# /sbin/restore -r -f /dev/nst0