Show Table of Contents
3.5. Satellite データベースのバックアップの自動化
バックアップ作業を自動化して、ピーク時を避け深夜もしくは早朝などにバックアップが行われるようにすることができます。これにより、バックアップをとるのを忘れてしまったりすることなく定期的にバックアップを実施することができます。バックアップの自動化で最も効果的なのは
cron
を使用する方法です。
手順3.6 Satellite Server データベースのバックアップ自動化
backup-db.sh
という名前の新しいファイルを作成し、以下のスクリプトを含ませます。このスクリプトで Satellite の停止や、データベースのバックアップ、および Satellite の再起動などを行います。
#!/bin/bash { /usr/sbin/rhn-satellite stop d=db-backup-$(date "+%F"); mkdir -p /tmp/$d; db-control backup /tmp/$d /usr/sbin/rhn-satellite start } &> /dev/null
move-files.sh
という名前の新しいファイルを作成し、以下のスクリプトを含ませます。このスクリプトを使ってバックアップファイルを格納先のディレクトリーにrsync
で移動します。#!/bin/bash rsync -avz /tmp/db-backup-$(date "+%F") <destination> &> /dev/null
<destination> をバックアップディレクトリーのパスに置き換えます。または、以下のスクリプトを使用しても同じことができます。#!/bin/bash scp -r /tmp/db-backup-$(date "+%F") <destination> &> /dev/null
- root ユーザーに切り替え、テキストエディターで
crontab
ファイルを開きます。# crontab -e
注記
デフォルトではcrontab
ファイルは vi で開かれます。この動作を変更するには、EDITOR
の変数を希望するテキストエディターの名前に変更します。 - 適切なジョブ定義を作成して、バックアップスクリプトを実行するスケジュールを設定します。
0 3 * * * backup-db.sh 0 6 * * * move-files.sh
このcrontab
のエントリーの場合、バックアップは 03:00 に、そのバックアップファイルの転送は 06:00 にそれぞれ実行されます。その他のオプションも必要に応じて追加することができます。また、古いバックアップディレクトリーを削除してバックアップストレージが満杯にならないようにするクリーンアップスクリプトを含めることもできます。 - エディターを終了するだけで
crontab
ファイルは保存されます。追加した新しいルールは直ちに反映されます。