社長BLOG

Linuxサーバ、Dropboxバックアップの黒魔術

※反響が大きければ追記します。@tejimaに連絡下さい。

プライベートでLinuxサーバをいくつも借りている。
こういうサーバのバックアップが一番困る。お金も手間もかけられない。
信頼性は商用レベルまで行かなくても、とにかくお金がかからず、お手軽なバックアップの仕掛けを完成させたい。

コンセプトは
・流行りのクラウド
・お手軽
・ローコスト、できればタダ

クラウドファイル共有といえばDropbox。これをうまいことLinuxサーバのバックアップに使えないだろうか?
DropboxはちょうどVer1.0正式版になったところだし、チャレンジしてみよう。

全体のイメージ

ServerA ServerB2つのLinuxサーバにバックアップ専用のユーザ(backup)を作成し、
backupユーザーにたいして、Dropboxをそれぞれインストール。
ファイルとデータベースをbackupユーザーのDropboxディレクトリに定期的に上書き保存されるようにし、
Dropboxのクラウド上に転送する。

このように構成はいたってシンプル。

手順1:Linux版Dropboxのセットアップ

GUIを使わないCLI版Dropboxをセットアップする。
差分バックアップがついた2GBの無料ストレージがもらえるので、個人目的としてはかなりの量のバックアップがこなせる。

手順2:Linuxサーバのバックアップファイルづくり

バックアップを取るべきディレクトリとデータベースを圧縮し、ひとつのファイルになるようにシェルスクリプトを書く。

tar cvfz /home/backup/Dropbox/ServerA.com/allfiles.tar.gz /var/www/OpenPNE
mysqldump -u xxxx -p xxxx –default-caracter-set=utf8 -A | gzip -9 > /home/backup/Dropbox/ServerA.com/alldatabases.sql.gz

このような書き方になる。

手順3:CRONでデイリーバックアップが取られるように設定

crontabを編集し、ファイル、データベースが /home/backup/Dropbox/sitename以下に毎日上書きされるように設定する。

10 4 * * * sh /home/backup/Dropbox/ServerA.com/backup.sh

手順3:SelectiveSync 別のサーバのバックアップが転送されないようにする

デフォルトではDropboxは全サーバのすべてのファイルを共有しようとする。
複数サーバのバックアップを取りたいときは、SelectiveSync機能を使って、別サーバは除外されるようにしよう。

./dropbox.py exclude コマンドを使う。

手順4:バックアップ状況の確認

正しくバックアップが取れている。

Dropboxは無料プランでも30日の世代バックアップをとってくれるので、同一のファイル名にして上書き保存すれば、この写真のように世代バックアップをきっちり取ってくれる。

※反響が大きければ追記します。@tejimaに連絡下さい。

OpenPNE�~�蓈���񋟃T�[�r�X�̂��m�点

  • ��K�̓z�X�e�B���O
  • �Z�p�T�|�[�g
  • �J�X�^�}�C�Y
  • OpenPNE Manager
  • ���q���܃T�|�[�g

ページの先頭に戻る