2011DropboxというとクライアントのPCにインストールして使うものというイメージがあると思いますが、サーバにインストールしてサーバ上のファイルをバックアップするのに使うのも便利です。この記事では、個人で使うVPSなどで自動バックアップにDropboxを使う方法を説明します。今回やることDropboxのインストール定期的な自動バックアップの設定Dropboxのインストールでは、GUIのないCLI環境にDropboxをインストールし、操作できるようにします。定期的な自動バックアップの設定では、シェルスクリプトとcronを用いて自動的にバックアップが作成されるようにします。MySQL、GitおよびSubversionを例にバックアップを行ってみます。10.04の環境で確認しました。Dropboxのインストールインストール部分はほぼこちらのままの方法で行いました。ダウンロードバイナリが公開されているのでダウンロードして展開するだけでインストールできます。dropbox.tar.gz起動これだけでは自動的に起動する状態ではありませんが、初回は認証が必要なので手動で起動します。~/.dropbox-dist/dropboxdしばらくすると以下のようなメッセージが表示されるので、ブラウザでメッセージで示されたURLにアクセスします。アクセスするのは他のマシンからでOKです。Syncの無効化DropboxにはLAN内のマシンとP2Pで同期する機能が実装されており、デフォルトで有効になっています。この機能はVPSでは意味が無いだけでなく、ほかのマシンに対してUDPのパケットを送信し続けるという問題があるため、無効化しておきます。起動や終了を行うためのスクリプトを用意します。startDROPBOX_USERSには利用するユーザをスペース区切りで記述します。0操作スクリプトのインストールここまでで~/Dropbox以下が勝手に同期される環境が構築できましたが、状態を確認したり設定することができません。そこで、操作用のスクリプトをインストールします。以下の例では~/binに置いていますが、適当にパスの通ったところに置いてください。dropbox.py同期するディレクトリの設定Dropboxには同期するディレクトリを指定する機能があるので、容量に限りのあるVPSなどでも無駄にディスク領域を奪われることはありません。excludeコマンドを利用します。addコマンドを利用してサーバに置く必要のないディレクトリを同期の対象から外しています。photos他にも同期対象を設定するコマンドとして以下のようなものが利用可能です。定期的な自動バックアップの設定~/Dropboxディレクトリ以下にバックアップしたいファイルを置けばとりあえずバックアップできますが、手作業でやるのはあり得ないので自動化します。バックアップを行うスクリプト今回は日付をファイル名としてバックアップを作成していき、ある程度古くなったら削除するようにします。スクリプトの雛形は以下のようになります。コメントの部分でバックアップファイルを生成し、その後更新日時が古いファイルをfindコマンドで探して削除しています。Dropboxには履歴管理の機能もあるので、単純に上書きしていけば問題なかったですね。Dropboxのディレクトリに出力してしまうとファイルが作成された瞬間のファイルサイズ0の状態が履歴に残ってしまうので、まず/tmp以下に出力してからDropboxの管理下に移動するようにしています。$backup_dirMySQLデータベースのバックアップMySQLのデータベースをバックアップする方法はいくつかありますが、小規模なデータベースであればmysqldumpコマンドを利用するのが簡単なようです。$backup_dirパスワードを書き込む必要があるのが気になるので、一応パーミッションを700にして他のユーザに読まれないようにしています。よい方法があれば教えていただけるとうれしいです。GitリポジトリのバックアップGitのリポジトリはtarで固めるだけでバックアップできます。dumpコマンドでダンプすることでバックアップできます。最後に、作成したスクリプトが定期的に自動実行されるよう設定します。以下の例では4時ちょうどにMySQL、5分後にGit、さらに5分後にはSubversionのバックアップを実行するように設定しています。