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でバックアップを取るより遥かに効率的で
サーバーに負担をかけずに安全にバックアップを取ることが可能です。
0 Comments.