Sakura VPS Backup to WD My Book Live (rsync with sshpass)

今日からさくらVPSの本契約が始まり、速度制限(Max 1Mbps)が解除されたのでバックアップ設定を行いました。
バックアップはプル方式で、家庭LANのWD My Book LiveからSakura VPSへデータを取りに行く(Pull)イメージになります。家庭LANのインターネット接続が固定IPではなく動的IPになるので、動的IP側から固定IP側に接続する今回の方法が一般的かと思います。図を書いた方がわかりやすいと思いますが、面倒なのでパス。

まずは家庭LANのWD My Book Liveに必要となるソフトウェアをインストールします。
※パスワード認証を使っている場合のみ必要で、公開鍵認証方式を使っている場合には必要ありません。

MyBookLive01:~# apt-get update

上記コマンドでパッケージのリストを最新に更新します。

MyBookLive01:~# apt-get install sshpass

上記コマンドでsshpassパッケージをダウンロード&インストールします。

MyBookLive01:~# rsync -avz --rsh="sshpass -p パスワード ssh -l ユーザー名" さくらVPSのホスト名(FQDN)またはIPアドレス:バックアップ元ディレクトリ(ソース) WD_My_Book_Liveのバックアップ先ディレクトリ(ターゲット)

sshpassが正常にインストールできたら、rsyncコマンドとsshpassコマンドを組み合わせて実行することでバックアップ出来ます。
あとは必要に応じてシェルスクリプトを作成して、crontabに仕込めば指定した時間に自動でバックアップしてくれます。rsyncコマンドは変更・追加のあった分だけを転送してくれるので、2回目以降のバックアップは大幅な時間短縮が出来て非常に便利です。仕事では必須のコマンドとなっています。オプションパラメーターでアーカイブを作成することも可能で、ディスクに空き領域があれば1ヶ月分を保存しておくことも可能になります。

MyBookLive01:~# rsync -avz -e ssh ユーザー名@さくらVPSのホスト名(FQDN)またはIPアドレス:バックアップ元ディレクトリ(ソース) WD_My_Book_Liveのバックアップ先ディレクトリ(ターゲット)

パスワードを手動で毎回入力する場合はこの形式になりますが、こちらはcrontabに仕込めません(毎回パスワードを聞かれて、そこで処理が停止する為)。
sshコマンドの代わりにsshpassコマンドを組み合わせて使っているのは、毎回パスワードを聞かれたときに、パスワードを自動応答させる為なのです。

ちなみにWD My Book Liveのファームウェアを更新すると、追加インストールしたソフトウェアも、crontabの設定も初期化されるので、一からやり直しとなります。
この辺りが普通のLinuxサーバーと家庭用NASの違うところです。