社内ファイルサーバ検討(その3)〜純正ツールaws clientに落ち着いた〜

goofys でマウントした領域にrsyncをかけてバックップするという仕組みは原因不明で
実現できませんでしたが、
amazonの純正ツールで sync コマンドを発見。
aws コマンドでs3のバケットと同期できるようです。


exclude オプションなどもあり、rsync的な使い方ができます。
http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html


さっそくawsコマンドラインツールをインストールします。
pythonで書かれているので、pip からインストールしました。


コマンドはこんな感じで実行します。

$ /usr/bin/aws s3 sync ${SRC} ${TARGET} ${OPTION_EXCLUDE}


ここで1点問題が発生。
AWSAPIでのアクセスはAWS側のサーバ時間とクライアント側の時刻がずれていないことが必須です。


VirtualBoxのゲストOSで動作させているため、時間が遅れていくという事象が発生し、
Additional Packageをインストールすれば大丈夫みたいなのがあったのですが、
私の環境だとうまくいきませんでした。


ちなみにntpdデーモンで同期しようとしてもうまく動かなかったため、
ntpdデーモンを停止した上で、むりくりntpdateコマンドで強制的にcronで時刻同期するようにしました。

/usr/sbin/ntpdate ntp.nict.jp && /usr/bin/time /usr/bin/aws s3 sync ${SRC} ${TARGET} ${OPTION_EXCLUDE}


syncには時間がかかることが予想されるので、timeコマンドで実行時間もわかるようにしました。
700GBのディスクスペースを同期精査するのに1時間半ほどかかりました。
(アップするファイルがある場合はもっと時間がかかります)


思ったよりも早かったので、夜中に実行しておけば問題はなさそうです。
実行時間もとってメールするようにしてあるので、遅くなった時は気づけるしね。


ちなみに、goofysでせっかくs3バケットをマウントできているので、
こちらのファイルマネージャを使って、どんなファイルがバックアップされるか参照できるようにしました。
検索ができるので便利だし、ファイルの操作やフォルダの作成機能も無効にできるので、
バックアップ領域の参照目的としてはパーフェクトです。

https://github.com/leefish/filethingie


本家サイトがなくなっているぽいですが、とても便利ですよ!
しばらくこんな構成で運用してみたいと思います。