バックアップ
2013年5月16日
自宅サーバーのバックアップを設定。
いままで手動で気まぐれにやってたけど、cronにして定期的に取るように。
CentOSのサーバー2台はXenで動いてるけど、Xenの母艦のディレクトリに保存する。
DBは毎日で、ファイル類は1週間でいいかな。。
いろいろググって、シェル改造。
まず、Xenの母艦へnfsを設定。
1 |
mount -t nfs 192.168.0.26:/nfs /nfs-server |
起動時に有効になるように「/etc/fstab」に追加。
1 |
192.168.0.26:/nfs /nfs-server nfs rw 0 0 |
バックアップするサーバーの/rootにDBバックアップスクリプト作成。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#!/bin/sh # バックアップファイルを何日分残しておくか period=7 # バックアップファイルを保存するディレクトリ dirpath='/nfs-server/backup/file-server/mysql' # MySQLrootパスワード rootpass=xxxxx # データベース名取得 DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /` # データベースごとにバックアップ for dbname in $DBLIST do # ファイル名を定義(※ファイル名で日付がわかるようにしておきます) filename="$dbname"_`date +%y%m%d` # mysqldump実行 mysqldump --opt --password=$rootpass $dbname > $dirpath/$filename.sql # パーミッション変更 chmod 700 $dirpath/$filename.sql # 古いバックアップファイルを削除 oldfile="$dbname"_`date --date "$period days ago" +%y%m%d` rm -f $dirpath/$oldfile.sql done |
ファイル類のバックアップスクリプトはここ(http://centossrv.com/)からまるパクリで。
cronに「crontab -e」で登録。
毎日5時30分にDBバックアップ実行。
毎週日曜日の6時にファイルバックアップ実行
1 2 |
30 5 * * * ./db_backup.sh 0 6 * * 0 ./file_backup.sh |
とれてるようだ。
とりま、これで様子見だ。
SVNとかどうしようかな。。でかいから手動でいいっか・・・