Red Hat Training

A Red Hat training course is available for Red Hat Satellite

3.3. 自動バックアップ

バックアップ作業を自動化して、 ピーク時を避け深夜もしくは早朝などにバックアップが行われるようにすることができます。 これにより、 バックアップをとるのを忘れてしまったりすることなく定期的にバックアップを実施することができます。 バックアップの自動化で最も有効なのが cron を使用する方法です。

手順3.3 バックアップを自動化する

backup-db.sh という名前の新しいファイルを作成し、 以下のスクリプトを含ませます。 このスクリプトで Satellite を停止する、 データベースのバックアップをとる、 Satellite を再起動する、 という作業を行います。
#!/bin/bash
{
/usr/sbin/rhn-satellite stop
su - oracle -c'
d=db-backup-$(date "+%F");
mkdir -p /tmp/$d;
db-control backup /tmp/$d
';
/usr/sbin/rhn-satellite start
} &> /dev/null
  1. move-files.sh という名前の新しいファイルを作成し、 以下のスクリプトを含ませます。 このスクリプトを使ってバックアップファイルを格納先のディレクトリに rsync で移動します。
    #!/bin/bash
    rsync -avz /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
    
    [destination] の部分には、 バックアップディレクトリへのパスを入れます。
    代わりに、以下のスクリプトのように scp を使用しても同じことができます。
    #!/bin/bash
    scp -r /tmp/db-backup-$(date "+%F") [destination] &> /dev/null
    
  2. root ユーザーに切り替え、テキストエディタで crontab を開きます。
    crontab -e
    

    注記

    デフォルトでは crontab は vi で開かれます。 この動作を変更するには EDITOR の変数を希望のテキストエディタ名に変更します。
  3. crontab で、最初の 5 つのフィールド (分、時、日、月、曜日) を使用してバックアップスクリプトを実行するスケジュールを設定します。
    0 3 * * * backup-db.sh
    0 6 * * * move-files.sh
    
    この crontab のエントリの場合、 バックアップは 03:00、 そのバックアップファイルの転送が 06:00 にそれぞれ実行されます。 その他のオプションも必要に応じて追加することができます。 また、 古いバックアップディレクトリを削除してバックアップストレージが満杯にならないようにするクリーンアップスクリプトを含ませることもできます。
  4. テキストエディタを終了するだけで crontab は保存されます。 追加した新しい cron ルールは直ちに反映されます。