マニュアルSUPPORT
Linuxバックアップ設定手順
バックアップサーバのディレクトリのマウント
マイティーサーバーにログインし、su- で rootにスイッチします。マウントポイントを作成します。
バックアップサーバのIPアドレス、共有ディレクトリを確認の上下記コマンドを実行します。
弊社からご連絡させていただいたIPアドレスが 192.168.2.2
共有ディレクトリ名が /vgroup00/backup1/mtsv.jpの場合は、下記のコマンド実行していただきます。
サーバを再起動した際にもバックアップサーバのディレクトリがマウントされるように設定ファイルを書き換えます。
vi等のエディタを利用して /etc/fstab のファイルを変更します。
backup.shの基本概要
バックアップ機能
弊社で用意しましたシェルスクリプト『backup.sh』を使用することで、バックアップが可能です。スクリプトはバックアップ領域にございます。
tarコマンドにて下記ディレクトリを、圧縮後バックアップします。
| /etc: | サーバの設定等が保存されているディレクトリ |
| /var: | サーバのlog等が保存さてているディレクトリ |
| /usr: | アプリケーションや、サービスのプログラムが保存されているディレクトリ |
| /home: | 仮想サイトのwebのデータ等が保存されているディレクトリ |
LOG機能
backup.shと同じディレクトリにLOGを保存します。
| backup.log: | バックアップの蓄積LOG |
| backuplog.tmp: | 過去1回分のバックアップのLOG |
設置方法
backup.shを/home /etc /usr /var 以外の任意のディレクトリに置きます。
ここでは、/rootに置くと仮定し説明致します。
cd /root
pwd
/root
--------
設置後、ファイルに実行権限を与えます。
--------
chmod 755 backup.sh
--------
backup.shの初期設定
そのままでも使用は可能ですが、下記の場合はvi等で変更を行って下さい。
要変更箇所 :DIR=/root
弊社のバックアップサーバのマウント先が「/mnt/dir」以外を指定している場合。
要変更箇所 :OUTDEV=/mnt/dir
バックアップの実行と方法
弊社で用意致しましたシェルを使用することで、マイティーサーバーのフルバックアップが可能です。
--------
chmod 755 backup.sh
--------
backup.shが設置してあるディレクトリ上でシェルを実行します
--------
./backup.sh
--------
特定の周期で自動的に実行させる場合は、cronに登録することでbackupの処理を自動化できます。
2 5 * * 0 root sh /root/backup.sh
ファイルを保存後に crondを再起動します。
/etc/rc.d/init.d/crond restart
上記の設定ですと毎週日曜の5時2分に指定したディレクトリのファイルが/mnt/dirにコピーされます。
※ cronの時間指定に関する説明
crontabに指定する時間・曜日に関しては、「分 時 日 月 曜日 実行者権限 コマンド」の順に指定します。
各項目には下記の値を指定することが可能です。
分 0-59
時 0-23
日 0-31
月 0-12
曜日 0-7 (0 と 7 は日曜日)文
その他管理
ご契約頂いているバックアップ容量と、サーバーのバックアップファイル量の確認を行って頂けます様お願いいたします。
duコマンド、ls -laコマンドなどで、バックアップファイルのサイズを確認して下さい。 ※dfコマンドを使用すると、バックアップサーバ全体の容量を表示してしまいますのでご注意ください。
また、普段からlogの確認を行っていただき、バックアップが正常に行えているか確認頂けます様お願いいたします。
下記にlogのエラー例を記載いたしますので、ご活用ください。
要変更箇所 :DIR=/root
弊社のバックアップサーバのマウント先が「/mnt/dir」以外を指定している場合。
要変更箇所 :OUTDEV=/mnt/dir
ソケットファイルはtarでバックアップできません。
ソケットファイルは一時ファイルですので、自動的に復元いたします。
バックアップ出来なくても問題ございませんが、不安がある場合は、個別でバックアップを行ってください。
>> メンバ名から先頭の `/\' を取り除きます
>> ** バイトのうち、0 バイトのみ書き込みました
エラーを回復できません: 直ちに終了します
ディスク容量が足りなく、正常にバックアップができなかった可能性があります。
バックアップ領域を増やす等を行ってください。
>> gzip: stdout: Disk quota exceeded
ディスク容量が足りなく、正常にバックアップができなかった可能性があります。
バックアップ領域を増やす等を行ってください。
バックアップLOGのメール通知(オプション)
backup.shのスクリプト内にある、特定の項目をコメントアウトすることで使用可能です。
バックアップ毎に完了後に結果の通知を行います。
コメントアウトする個所は以下の通りです。
---------------------
## Mail config (Option)
#
#mladd=root@localhost
#mlSubject=Back_Up_Script_LOG_MAIL
---------------------
【変更後】
---------------------
## Mail config (Option)
#
mladd=root@localhost
mlSubject=Back_Up_Script_LOG_MAIL
---------------------
---------------------
##Send Mail ----------------------------------------------------
## Mail config (Option)
#
#echo ">>Send Mail Backup Result" >> ${tempLOG}
#nkf -j ${tempLOG} > ${tempLOG}.j
#mail -s ${mlSubject} ${mladd} < ${tempLOG}.j
---------------------
【変更後】
---------------------
##Send Mail ----------------------------------------------------
## Mail config (Option)
#
echo ">>Send Mail Backup Result" >> ${tempLOG}
nkf -j ${tempLOG} > ${tempLOG}.j
mail -s ${mlSubject} ${mladd} < ${tempLOG}.j
---------------------
リストアの実行と方法
そのままでも使用は可能ですが、下記の場合はvi等で変更を行って下さい。
弊社で用意しましたシェルスクリプト『restore.sh』を使用することで、フルリストアが可能です。スクリプトはバックアップ領域にございます。
必ず、os再インストール後に弊社バックアップサーバーにマウントされていることを確認後、行って下さい。サーバーに、ある程度の設定等を行っている場合は、復旧出来ない場合もございます。
--------
chmod 755 restore.sh
--------
シェルを実行致します。すると、下記メッセージが表示されます。
--------
How about Backup Mount point? (Ex.. /mnt/dir/) :
--------
ここで、バックアップサーバーのマウント先が『/mnt/dir』である場合、その旨を記入しenterキーを押します。すると、下記メッセージが表示されます。
--------
/mnt/dir is OK?? (Enter to continue..)
--------
間違っていた場合は『ctrl+c』キーを押して中止して下さい。問題なければ、enterキーを押し実行します。
実行完了後、『End...Please..reboot!!』と表示されますので、/home/sites配下等に問題なく解凍出来ているのであれば正常完了ですので、再起動を行って下さい。途中でエラーが出る場合は、マウント先やバックアップファイル等無い場合がございますので再度ご確認の上実行してくださいますようお願いいたします。
#! /bin/sh
#######################################
#
#tar czpf /mnt/dir/backupEtc.tar.gz/etc
#tar czpf /mnt/dir/backupHome.tar.gz /home
#tar czpf /mnt/dir/backupVar.tar.gz /var
#tar czpf /mnt/dir/backupUsr.tar.gz /usr
#
#######################################
## Config ------------------------------------------------------
DIR=/root
tempLOG=${DIR}/backuplog.tmp
LOG=${DIR}/backup.log
OUTDEV=/mnt/dir
OBJECT1=/etc
OBJECT2=/home
OBJECT3=/var
OBJECT4=/usr
## Mail config (Option)
#
#mladd=root@localhost
#mlSubject=Back_Up_Script_LOG_MAIL
### Start ------------------------------------------------------
cd /root
mv ${tempLOG} ${tempLOG}.2
echo "---------------------------------------" \
>> ${tempLOG}
date >> ${tempLOG}
echo ">>Backup....start" >> ${tempLOG}
echo "---------------------------------------" \
>> ${tempLOG}
echo " " >> ${tempLOG}
du -sh ${OUTDEV} >> ${tempLOG}
echo " " >> ${tempLOG}
ls -alh ${OUTDEV} >> ${tempLOG}
df >> ${tempLOG}
echo " " >> ${tempLOG}
echo " " >> ${tempLOG}
echo "------------------" >> ${tempLOG}
echo ">>tar..backup..Start" >> ${tempLOG}
echo " " >> ${tempLOG}
## Etc backup --------------------------------------------------
echo ">>tar../etc..backup..Start" >> ${tempLOG}
tar czpf \
${OUTDEV}/backupEtc.tar.gz \
${OBJECT1} \
>> ${tempLOG} 2>&1
echo " " >> ${tempLOG}
## Home backup -------------------------------------------------
echo ">>tar../home..backup..Start" >> ${tempLOG}
tar czpf \
${OUTDEV}/backupHome.tar.gz \
${OBJECT2} \
>> ${tempLOG} 2>&1
echo " " >> ${tempLOG}
## Var backup --------------------------------------------------
echo ">>tar../var..backup..Start" >> ${tempLOG}
tar czpf \
${OUTDEV}/backupVar.tar.gz \
${OBJECT3} \
>> ${tempLOG} 2>&1
echo " " >> ${tempLOG}
## Usr backup --------------------------------------------------
echo ">>tar../usr..backup..Start" >> ${tempLOG}
tar czpf \
${OUTDEV}/backupUsr.tar.gz \
${OBJECT4} \
>> ${tempLOG} 2>&1
echo " " >> ${tempLOG}
echo " " >> ${tempLOG}
echo "------------------" >> ${tempLOG}
echo " " >> ${tempLOG}
du -sh ${OUTDEV} >> ${tempLOG}
ls -alh ${OUTDEV} >> ${tempLOG}
date >> ${tempLOG}
echo " " >> ${tempLOG}
echo " " >> ${tempLOG}
echo ">>Backup....End" >> ${tempLOG}
echo " " >> ${tempLOG}
echo " " >> ${tempLOG}
##Send Mail ----------------------------------------------------
## Mail config (Option)
#
#echo ">>Send Mail Backup Result" >> ${tempLOG}
#nkf -j ${tempLOG} > ${tempLOG}.j
#mail -s ${mlSubject} ${mladd} < ${tempLOG}.j
##Write Log-----------------------------------------------------
echo "---------------------------------------" \
>> ${tempLOG}
cat ${tempLOG} >>${LOG}
#End
#! /bin/sh
####################
### Need files are....
# backupEtc.tar.gz
#backupHome.tar.gz
#backupVar.tar.gz
#backupUsr.tar.gz
#
####################
printf "How about Backup Mount point? (Ex.. /mnt/dir/) :"
read MountPT
echo -n "${MountPT} is OK?? (Enter to continue..)"
read
ls -al ${MountPT}
echo `cd ${MountPT} && pwd ${MountPT}`
ls -f `cd ${MountPT} && pwd ${MountPT}`/backupEtc.tar.gz && \
ls -f `cd ${MountPT} && pwd ${MountPT}`/backupHome.tar.gz && \
ls -f `cd ${MountPT} && pwd ${MountPT}`/backupVar.tar.gz && \
ls -f `cd ${MountPT} && pwd ${MountPT}`/backupUsr.tar.gz && \
du `cd ${MountPT} && pwd ${MountPT}`
echo "Stop main systems..."
/etc/rc.d/init.d/sendmail stop
/etc/rc.d/init.d/httpd stop
/etc/rc.d/init.d/admserv stop
/etc/rc.d/init.d/crond stop
/etc/rc.d/init.d/poprelayd stop
/etc/rc.d/init.d/cced.init stop
echo "OK..."
cd /
echo "Start Recovery"
tar zxpvf `cd ${MountPT} && pwd ${MountPT}`/backupEtc.tar.gz
tar zxpvf `cd ${MountPT} && pwd ${MountPT}`/backupHome.tar.gz
tar zxpvf `cd ${MountPT} && pwd ${MountPT}`/backupVar.tar.gz
tar zxpvf `cd ${MountPT} && pwd ${MountPT}`/backupUsr.tar.gz
cd ${MountPT}
echo "End...Please..reboot!!"
#End






