リスト1A、リスト2のような方法で幾つかのバックアップデータを保存しておき、世代管理を行うことで、バックアップ実行間隔と保存している世代数によっては、最新のバックアップデータにファイルが存在していなくても、ファイルの復旧が可能な場合があります。
リスト1Aのように、tarコマンドでバックアップを行った場合には、次回のバックアップを行う前に、バックアップ後のアーカイブファイルの名前を変更することで世代管理を行えます。また、リスト2のようにdump/restoreコマンドでバックアップを行った場合には、前述のとおり、バックアップ先のディレクトリ名を変更することで、世代管理が可能となります。
例えば、リスト1Aであれば、バックアップ実行個所の手前に、次のように追記しておくとよいでしょう。
mv backup_files.tar.0 backup_files.tar.1
mv backup_files.tar backup_files.tar.0
そうすると、バックアップを行う前に、前回のアーカイブファイルが別名保存されるので、バックアップデータは上書きされず、世代管理が可能です。この例では、3世代(backup_files.tar、backup_files.tar.0、backup_files.tar.1)のバックアップデータが保存されることになります。
作成したスクリプトが実際に動作することが確認できたら、cron機能を使って、作成したシェルスクリプトを定時に実行させてみます。注意点は、バックアップに要する時間が、バックアップの実行間隔よりも短くなければならないことです。例えば、バックアップに1時間半かかる場合に、1時間おきにバックアップを実行するように設定してしまうと、バックアップの途中で次のバックアップが開始されてしまい、管理が複雑になってしまいます。
作成したシェルスクリプトを実行して、どの程度の時間がかかるか計測し、バックアップを実行させる間隔をどの程度にするかを決めてください。また、あまり頻繁にバックアップを行うとシステムに対する負荷が高くなり、本来行うべき作業に時間が掛かる可能性があります。
バックアップを行う曜日や時刻を決めて、crontabに登録します。リスト1Aを月曜日から金曜日の午後11時30分に実行するように設定してみると、以下のようになります。登録するフィールドは、左から「分、時、日、月、曜日、実行するコマンド」の6つで、「*」はワイルドカードです。
また曜日の指定は、0が日曜日で、6が土曜日となることに注意してください。例えば、「月、水、金」を指定したい場合は、「1,3,5」とフィールドに登録します。
dump/restoreコマンドを使ったバックアップでは、バックアップ元とバックアップ先の指定を逆にすることで、データのリストアが可能になります。tarコマンドを使ったバックアップを行っている場合なら、リストア先のディレクトリに移動して、次のように実行すると、リストアされます。
# tar xvf <バックアップアーカイブファイル>
Copyright © ITmedia, Inc. All Rights Reserved.