サーバーDBも含めた自動バックアップ 

Vine Linux Install memo 様の記事を参考にバックアップ対策をしました。

#!/bin/sh

ROOTPASS="*************"
mysqldump -u root -p$ROOTPASS --all-database > mysql.sql

ls /media/BACKUP

if [ $? -eq 0 ]; then
	echo -e "n--- www server System backup start ---n";
	echo -e "n--- start /etc ---n";
	rsync --progress -a --delete /etc /media/BACKUP/server;
	echo -e "n--- start /home ---n";
	rsync --progress -a --delete /home /media/BACKUP/server;
	echo -e "n--- start /root ---n";
	rsync --progress -a --delete /root /media/BACKUP/server;
	echo -e "n--- start /var ---n";
	rsync --progress -a --delete /var/www /media/BACKUP/server;
	echo -e "n--- www server System backup end ---n";
	df;
else
	echo -e "n--- USB HDD not connected !! ---n";
fi

**************はMySQLのrootパスワードです。
一応ここでのシェルスクリプト名はbackup.sh
として解説します。

MySQLのバックアップをrootフォルダーに取った後rootファルダーごと
/mediaにマウントされたHDD(BACKUP)のserverと言うフォルダーに
同期させてバックアップを取ります。

その他に
/etc
/home
/var/www
等もバックアップを取っていきます。

※このシェルスクリプトを実行するには
以下のようにMySQLの設定をする必要があります。

# vi /etc/my.cnf
設定ファイルの編集
[mysqldump]
上の項目の一番下に以下を追記
default-character-set = binary
参考元VineLinuxで自宅サーバー

自動実行のためCRONに登録します。
# crontab -e
cronの設定
iで挿入
*/10 * * * * /root/backup.sh
[etc]:wq
で保存

これで自動的にベータベースごと設定ファイルとユーザーディレクトリーを
10分おきに外付けHDDに保存していきます。

※バックアップ先の外付けHDDはext3でフォーマットしておくと
属性が変わらないので復元の時が楽です。

この方法ならtar.gzでバックアップを取るより遥かに効率的で
サーバーに負担をかけずに安全にバックアップを取ることが可能です。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(Spamcheck Enabled)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)