設定ファイルのバックアップには、tarコマンドがおすすめです。tarコマンドが優れている点は、以下のとおりです。
- CentOS 7、RHEL 7に標準で提供されている
- レスキューモードでも提供される(どんな環境でもリストア可能)
- 一般ユーザーでもファイルの自分の所有するファイルをバックアップ/リストアできる
- 無圧縮/圧縮(gzip/bzip2/xz)が選べ、圧縮率も非常に高い
- 任意のファイルをピンポイントでリストアできる
- SELinuxのコンテキストをバックアップ/リストアできる
- パイプを使ってリモートからバックアップ/リストアできる
バックアップを行う場合に、何をバックアップすべきか見極めることが必要です。
最近はハードディスク容量の増加にともない、メンテナンスの時間内にバックアップがとりきれないシステムもめずらしくありません。
そのようなシステムに共通するのが、データの重要度に関係なく、とにかく全てのデータのバックアップを取っておけば安心だという考えから、全てバックアップを取得している点です。
大量に取得したバックアップデータは、リストア対象のデータも探しにくく、何かあったときのリストア作業にも時間がかかってしまいます。
CentOS 7に標準で含まれるアプリケーションは、バックアップすべき重要なファイルは/etcと/varにしか作ることはありません。
また、/homeには一般ユーザーが作ったファイルが格納されていますが、これはユーザーデータのバックアップとして、Linuxや設定ファイルのバックアップとは別のカテゴリとして考える必要があります。
それ以外の場所のファイルは、RPMのパッケージリストでリストア可能だと考えて問題ありません。
OSに起動に必要な設定ファイルが格納されている/etcディレクトリのバックアップを行う場合には、次のように実行します。
# tar -C / --selinux --acls --xattrs -zcvf /opt/etc.tar.gz /etc
「–selinux –acls –xattrs」はSELinuxのコンテキスト、POSIX ACL、拡張属性(xattrs)をtarファイル内に含めるためのオプションです。また、「-C /」は「/」をカレントディレクトリとすることを意味します。
リストアを行う場合には、以下のように実行します。
# tar -C / -zxvf /opt/etc.tar.gz
サービス毎に個別で、バックアップを取得することもできます。部分的にファイルが損傷した場合にリストアの手順が簡素化できます。
例えば、Apacheの場合は、以下のディレクトリ配下のファイルをバックアップします。
/etc/httpd/
/etc/pki/
/var/www/html/