ku-sukeのブログ

Just another hatena blog

LinkStation LS210D にjets3tいれてGoogle Nearline Storageにバックアップ

MacBook Airの容量がいっぱいだったので、先日安かったNASを買いました。

 

 それで、ひとしきりバックアップとったあと、MacBookからデータごっそり抜いて空き容量200GBまで戻したんですが、そうするとやっぱり心もとないので、クラウドにバックアップを取ることにしました。

 

LinkStationは下位機種でもいろいろいじれるみたいなので、早速その通りやってみました。(2015年7月時点の情報です。真似する場合は自己責任で。)

 

今回アップロード先に選んだのは、Google Nearline Storageです。Amazon Glacierとちがって、取り出すときも3秒程度の待ちが入るのみとなり、おねだんも1GB1円程度なので、お買い得です。

Dropboxはじめとする同期型ストレージでもいいのですが、いまのところ上位プランにしてないのでこちらにおさまりました。

 

1.SSHを使えるようにする

この方法が今でも使えました。これを使って、acp_commanderでSSHを使えるようにします。

% java -jar acp_commander.jar -t [LinkStationのIPアドレス] -ip [LinkStationのIPアドレス] -pw [LinkStationのadminのパスワード] -c "sed -i 's/UsePAM yes/UsePAM no/g' /etc/sshd_config"
% java -jar acp_commander.jar -t [LinkStationのIPアドレス] -ip [LinkStationのIPアドレス] -pw [LinkStationのadminのパスワード] -c "sed -i 's/PermitRootLogin no/PermitRootLogin yes/g' /etc/sshd_config"
% java -jar acp_commander.jar -t [LinkStationのIPアドレス] -ip [LinkStationのIPアドレス] -pw [LinkStationのadminのパスワード] -c "(echo [設定したいrootのパスワード]; echo [設定したいrootのパスワード])| passwd"
% java -jar acp_commander.jar -t [LinkStationのIPアドレス] -ip [LinkStationのIPアドレス] -pw [LinkStationのadminのパスワード] -c "sed -i 's/SUPPORT_SFTP=0/SUPPORT_SFTP=1/g' /etc/nas_feature"
% java -jar acp_commander.jar -t [LinkStationのIPアドレス] -ip [LinkStationのIPアドレス] -pw [LinkStationのadminのパスワード] -c "/etc/init.d/sshd.sh restart"

LinkStation LS420Dにs3cmdとawscliを入れてみた - Qiita

 2.Javaの導入

LinkStationはarmなので、ラズパイの記事を参考に調べたら普通にarm用があったのでインスコできました。

JDK 8 for ARM - Download

/usr/java/jdk1.8.0_51 あたりに展開するだけのお手軽さ。

.bash_profileとかにJAVA_HOMEを書いときます。後述するcron化する際には、sh自体に書いてきます。

JAVA_HOME=/usr/java/jdk1.8.0_51
export JAVA_HOME 

3.jets3tの導入

S3とシンクロするJetS3tがS3Syncより早いらしいという記事を見て、こちらを導入することにしました。ダウンロードして解凍するだけのお手軽パックです。

http://www.jets3t.org/

4.Google Cloud Consoleを有効に

JetSetをダウンロードしたら、GoogleCloudConsoleでスイッチを入れます。

ここがわかりやすかったです。一点違う点は、ストレージクラスを「Nearline」リージョンを「アジア」にしたことくらいでしょうか。

5.設定ファイルを編集

4.で「相互運用性」にチェックを入れるとアクセスキーと非公開キーが手に入るので、それをconfig/synchronize.propertiesの該当行をコメントアウトします。

http://www.jets3t.org/applications/synchronize.html

あとは、バックアップしたいフォルダに、.jets3t-ignoreファイルを設置し、中に

.*

とだけ書いておきました。(これでMacメタデータファイルがバックアップされなくなる)

6.実行!cron化

ここまでできたら試しに実行します。

[root@LS210DDFD jets3t-0.9.3]# bin/synchronize.sh --provider GS UP <バケット名>/home /mnt/disk1/バックアップしたいパス/Desktop

 --provider GSでGoogle Cloud Storageが選択されます。

うまくいったら、こいつをcronに登録し、synchronize.shの先頭にでもJAVA_HOMEを記載しておけば安心です。

 

たとえば、ソースコードはgitだからいいやとか、Donloadフォルダはいいやとか、.jets3t-ignoreファイルで細かく指定できるので、バックアップ時間とストレージ料金を節約できるので、うまく活用してみてくださいね