連載
» 2018年04月26日 05時00分 公開

Linux基本コマンドTips(203):【 xfsdump 】コマンド――XFSファイルシステムをバックアップする

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、XFSファイルシステムをバックアップする「xfsdump」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回はXFSファイルシステムをバックアップする「xfsdump」コマンドです。

xfsdumpコマンドとは?

 「xfsdump」は、XFSファイルシステムをバックアップするために、指定した場所にコピーするコマンドです(※1)。バックアップからの復元は「xfsrestore」コマンド(連載第204回)を使用します。

※1 ファイルの管理方式自体や管理方式にのっとってフォーマットした記憶領域のことを「ファイルシステム」と言う。XFSはファイルシステム自体の更新情報を記録するジャーナリングに対応したファイルシステムであり、システム障害に強い。CentOS 7のデフォルトのファイルシステムはXFS。





xfsdumpコマンドの書式

xfsdump [オプション] -f 作成先 バックアップ対象

xfsdump [オプション] - バックアップ対象

※[ ]は省略可能な引数を示しています。




xfsdumpの主なオプション

短いオプション 意味
-l レベル xfsdumpの「レベル」を数字で指定する。「1」〜「9」は増分バックアップの際に使用する(本文参照)。「0」は対象全てをバックアップする(デフォルト)。
-f ファイル バックアップの出力先(ファイルやデバイスの他、リモートホストのファイルを指定可能)
- バックアップの出力先として標準出力を指定
-L ラベル バックアップに付けるラベルを指定する(リストア時に使用)
-M ラベル バックアップメディアに付けるラベルを指定する(バックアップ先の識別に使用)
-e 拡張属性で「no dump」が指定されているファイル(※2)を除外する
-z サイズ バックアップに含めるファイルの最大サイズ(KB単位)を指定
-A 拡張属性はバックアップしない
-D 増分バックアップ時、変更されていないディレクトリはスキップする
-I バックアップを実行せず、過去に実行したxfsdumpの実行結果を表示する(※3)
-J バックアップの記録(/var/lib/xfsdump/inventory/に保存)を更新しない
-R 前回中断した所から再開する
-O ファイル xfsdumpのオプションをファイルから読み込む
-v モード 経過表示の詳しさを「0〜4」または「silent」「verbose」「trace」「debug」「nitty」のいずれかで指定する(※4)。

※2 ファイルの属性を変更するchattrコマンドを利用し、「chattr +d ファイル名」として、no dump拡張属性を追加可能。
※3 「/var/lib/xfsdump/inventory/」ディレクトリに、xfsdumpの記録が保持されている。
※4 「0」が「silent」に相当。さらに「-v silent -v drive=debug」(ドライブ関連だけdebugで、その他のメッセージは表示しない)のように、表示の種類を細かく指定できる。指定できる種類は「general」「proc」「drive」「media」「inventory」「inomap」「excluded_files」。





ファイルをバックアップする

 「xfsdump -f 作成先 対象」で、対象を作成先にバックアップします(画面1)。作成先にはファイルかデバイス(/dev/sda1など)を指定します。ローカルでもリモートでも指定できます。

 対象はデバイス(/dev/sda1など)またはマウントポイントを指定します。

 実行にはroot権限が必要です(連載第68回)。

 このようにxfsdumpコマンドを実行すると、必要なデータの入力を求められます。まず、ダンプを識別するためのラベルです(dump label dialog)。このラベルはリストア時に使用します。実行時にラベルを指定するには「-L」オプションを使用します。

 続いて、メディアを識別するためのラベルを入力します(media label dialog)。メディア用のラベルは「-M」オプションでも指定可能です。

 なお、「xfsdump - 対象」で出力先に標準出力を指定した場合、ラベルを入力する必要はありません(画面2)。

コマンド実行例

xfsdump -f 作成先 対象

(対象をバックアップする)

xfsdump -f /backup/data.dump /data

(/dataディレクトリを「/backup/data.dump」にバックアップする)(画面1

xfsdump -f /backup/sda1.dump /dev/sda1

(/dev/sda1を「/backup/sda1.dump」にバックアップする)

xfsdump -f /backup/sda1.dump -L "full backup" -M "backup01" /dev/sda1

(同様に、2種類のラベルを指定する)

xfsdump - /dev/sda1 > /backup/sda1.dump

(/dev/sda1をダンプして/backup/sda1.dumpに保存、標準出力へ出力するためラベルを使用しない)

xfsdump - /dev/sda1 | gzip > /backup/sda1.dump.gz

(/dev/sda1のダンプをgzipコマンドで圧縮して/backup/sda1.dump.gzに保存、標準出力へ出力するためラベルを使用しない)(画面2


画面1 画面1 /dataを/backup/data.dumpにバックアップしたところ 処理実行前に2種類のラベルを入力した。
画面2 画面2 gzipコマンドで圧縮しながらバックアップを取ったところ


増分バックアップを行う

 xfsdumpコマンドは、dumpコマンド(第201回)同様、「増分バックアップ(インクリメンタルバックアップ)」にも対応しています。

 増分バックアップとは、前回実行したバックアップに対し、変更があった分だけを今回バックアップするという処理です(※5)。

※5 増分バックアップに対し、常に全体のバックアップから変化した分をバックアップする方法を差分バックアップと呼ぶ。



 xfsdumpの増分バックアップでは、どの版に対するバックアップを取るのかを指定するために「レベル」を使います。まず、初回はレベル0(デフォルト)で全体をバックアップし、次からは追加、変更があったファイルだけを増分バックアップします。

 増分バックアップで指定できるレベルは1〜9です。例えば、レベル5を指定した場合、作成先の中から5よりも小さい最大のレベルをxfsdumpコマンドが探し、最大のレベルのうち最後にバックアップしたものが選ばれます。そのバックアップ後に追加、変更のあったファイルだけが今回の対象となります(※6)。

※6 例えば、最初にレベル0を実行し、その後毎週、レベル1を実行すると、レベル0以降に追加、変更があったファイルを毎回全てバックアップするため、対象となるファイルの数が次第に増えてくる(差分バックアップ)。最初にレベル0を指定し、毎週レベルを1つずつ増やして実行すると、1週間分の差分だけをバックアップするため、対象となるファイルの数を抑えることができる(増分バックアップ)。



コマンド実行例

xfsdump -l 0 -f /backup/data.dump /data

(初回に/dataを/backup/data.dumpにバックアップする)

xfsdump -l 1 -f /backup/data.dump1 /data

(増分バックアップのレベル1、初回から変化した分だけをバックアップする)

xfsdump -l 2 -f /backup/data.dump2 /data

(増分バックアップのレベル2を実行する。2より小さなレベルのバックアップから変化した分だけをバックアップする)


 画面3では、ラベルの指定を省略するために、いったん標準出力へ出力し、リダイレクトでファイルに保存しています。さらにメッセージの出力を抑制するために「-v silent」オプションも指定しました。

 使用したコマンドラインは以下の通りです。

コマンド実行例

xfsdump -l 0 - -v silent /data > /backup/data.dump

(初回の処理)(画面3

xfsdump -l 1 - -v silent /data > /backup/data.dump1

(増分バックアップのレベル1の処理)(画面3


画面3 画面3 増分バックアップを実行したところ


バックアップから復元する

 バックアップからの復元はxfsrestoreコマンドで行います(画面4)。増分バックアップを復元する場合は「-r」オプションを付けて、レベル0から順に復元します。詳細は第204回で扱います。

画面4 画面4 バックアップからリストアしたところ 青字のxfsrestorehousekeepingdirは、リストアの状態を管理するディレクトリで-rオプション指定時に作成される。


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。