みなさんは、バックアップを何でしていますか?
私は最近MBP Late2016を買ってmacOSデビューしました!!!
なので、TimeMachineサーバをDockerで立ててそれをGoogleDriveに保存したいと思います!!
と思っていたのですがマウントすると、どうしても認識してくれないのでGoogle Driveの認証を書いていますが意味ないです。本当にわけがわからない。なんでなの?ねえ。
その前に
今回はローカルでサーバを立ててバックアップを試みたのですが、どうしても接続できなかったので Dplyという2時間だけ無料で使えるVPS上にサーバを立てました。
セットアップ
~ ssh root@IP
$ curl -fsSL https://get.docker.com/ | sh
$ add-apt-repository ppa:alessandro-strada/ppa # Google Driveをマウントする
$ apt-get update
$ apt-get install google-drive-ocamlfuse
Google DriveのAPIを有効にする
Google Driveをマウントするために、Google DriveのAPIを有効にします。
プロジェクトの作成
https://console.developers.google.com/apis/dashboard
にアクセスして、プロジェクトを作成をクリックします。
APIの有効化
ダッシュボードに移動できたら、「APIを有効にする」をクリックして、
認証情報の作成
まずは、OAuth 同意画面を作り「サービス名」を適当に入力します。
認証情報を作成します。「OAuth クライアント ID」をクリックします。
アプリケーションの種類には「その他」を選択して、作成します。
すると「クライアント ID」「クライアントシークレット」が生成されます。
Google Driveへのアクセス許可
$ google-drive-ocamlfuse -headless -id クライアントID -secret クライアントシークレット
と入力するとGoogleのOAuth認証を求めるURLが表示されるので、アクセスします。
コンソールに戻ってコードを貼り付けて
Access token retrieved correctly
と表示されたら成功です!
マウント
$ mkdir /googledrive
$ google-drive-ocamlfuse /googledrive
$ mkdir /googledrive/timemachine
Google Driveでも「timemachine」フォルダがあることが確認できると思います。
netatalk を立てる
netatalkとは
netatalkはUnix系OS上でMac OSやOS Xに対してAFPによるファイルサーバの機能を提供するオープンソースのソフトウェアである。
https://ja.wikipedia.org/wiki/Netatalk
つまりファイル共有サーバの機能を提供するわけですね。
起動する
docker run --detach \
# --volume /googledrive/timemachine:/media/timemachine \ -> これだと認識してくれない
--publish 548:548 \
--env AFP_USER=$(id -un) \
--env AFP_PASSWORD= \
--env AFP_UID=$(id -u) \
--env AFP_GID=$(id -g) \
--name netatalk \
cptactionhank/netatalk:latest
Finderで CMD + K を押して afp://IPアドレス
で接続します。
まとめ
どうしてGoogle Driveをマウントしても認識してくれないのだろう。
(コンテナの中を見に行くとちゃんとマウントはできているみたい)
今後は、gcsfuseとかを使って挑戦してみたいです。