サーバに限らず、大事なデータ等は常に日頃からバックアップする事が大事です。
設定ファイルなら以前と同じ値を設定すれば問題ありませんが、データなどは二度と同じにする事は不可能です。
しかし、出来ることならば設定ファイルもバックアップして、サーバOSの再インストール時に少しでも軽減できるように設定ファイルのバックアップスクリプトを作成しました。
スクリプト内の指定で、履歴バックアップも備えましたのでご利用ください。
任意のパスにスクリプトを作成します。
作成した場所を変更した場合は、cronに登録する際にそのパスに変更してください。
当方は「/root」直下に作成しました。
バックアップスクリプトの作成(apacheの場合) # vi /root/backup_apache.sh #!/bin/sh 以下の任意設定内をご自分の環境に合わせてください。 ###########任意設定(ここから)########### # バックアップ先のパス(必須:末端の"/") BACK_UP_PATH=/backup/settings/ # バックアップファイル名 BACK_UP_FILE=backup_apache # バックアップする世代数 GENERATION=7 ###########任意設定(ここまで)########### ######################################## EXT_GZ=".tar.gz" ######################################## if [ ! -d $BACK_UP_PATH ]; then /bin/mkdir -p $BACK_UP_PATH fi idx=$GENERATION until [ $idx -eq 0 ]; do if [ -f $BACK_UP_PATH$BACK_UP_FILE$idx$EXT_GZ ]; then if [ $idx -eq $GENERATION ]; then /bin/rm -f $BACK_UP_PATH$BACK_UP_FILE$idx$EXT_GZ else bkno=`expr $idx + 1` /bin/mv -f $BACK_UP_PATH$BACK_UP_FILE$idx$EXT_GZ $BACK_UP_PATH$BACK_UP_FILE$bkno$EXT_GZ fi fi idx=`expr $idx - 1` done 以下の「./」から始まる部分がバックアップ対象の各種ファイルです。 /bin/tar zcfP $BACK_UP_PATH$BACK_UP_FILE"1"$EXT_GZ /etc/httpd/conf/ /etc/httpd/conf.d/ exit バックアップスクリプトのパーミッション変更 # chmod 700 /root/backup_apache.sh |
作成(ダウンロードし展開)したスクリプトをcronに登録し、自動的にバックアップを行います。
cron設定 プログラムを定期的に実行するcrondの設定ファイルを編集する # crontab -e 毎日00:00にWebサーバ(apache)のバックアップを行う 00 00 * * * /root/backup_apache.sh 上記はWebサーバ(apache)のバックアップ例です。 他の設定ファイルもバックアップするには、行を追加して対象のスクリプトを設定してください。 |
バックアップスクリプトで実行した、各バックアップファイルは「backup_xxxxx.tar.gz」となっています。
リストアするには、以下を実施してください。
バックアップ先へ移動 # cd /backup/settings/ バックアップ先の確認 # ls -l -rw-r--r-- 1 root root 45068 2007-10-05 11:44 backup_apache1.tar.gz バックアップファイルのリストア(apacheの場合) # tar zxvfP backup_apache1.tar.gz /etc/httpd/conf/ /etc/httpd/conf/magic /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/README : : 上記は規定の位置にリストアされます。(規定位置のファイルは上書されます) 上書されたくない場合は「tar」コマンドのオプション「P」を除外して実行します。(以下参照) 「P」を除外 ↓ # tar zxvf backup_apache1.tar.gz この場合、ファイルは相対パスで展開されます。(現在のパス「/backup/settings/」配下に展開される) このファイル群を先頭の"."を省いたパスへ上書きコピーすれば完了です。 例)「./etc/httpd/conf/httpd.conf」をリストア # tar zxvf backup_apache1.tar.gz /etc/httpd/conf/ tar: メンバ名から先頭の `/' を取り除きます /etc/httpd/conf/magic /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/ : : # mv -f ./etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf |