LinuxでクラウドDriveを使う
メインマシンはUbuntu16.04を使い、仮想マシンでWindows7を動かしている。
これで、ほぼ問題は起きないのだがクラウドを使用する時に、「ちぇっ」って思うことがある。
Dropboxは、Linux版の同期アプリ(Windows版・MacOS版と同じ)が出ているので使い勝手は全く同じ。
ところが、OneDriveは、Linux版がない。
Google Driveも同様。
(なぜGoogleが出していないのか???って感じだけど…)
まあ、全部Dropboxで済ませれば、良いのだけれど、Dropboxは14GBしかなくて、80%以上利用してて空きが厳しい。
せっかくなら、GoogleDriveは120GBほど使えるし、OneDriveは1TBもあるので、うまく利用したい。
もちろん、どれもWEBからのアクセスには対応しているので、GUIベースというかブラウザから使えなくはない。
でも、コマンドラインで使いたいのですわ。
cp や mv がぁぁ…
いちいちマウスで右クリックして…ってやってらんない。
きっと、簡単な方法があるはず…
FUSEを使う
まあ、以前から使っているんですが、探せばいろいろと見つかるもので、同様な考えを持つ人は居るわけです。
先人の知恵を拝借し、成果物を利用させてもらう。
GitHubにありました。
他にもいろいろと見つけたのだけれど、これが良さそう。
PPAがあるので、Ubuntuの場合、簡単ですな。
さて、インストールは、説明通り実行するだけ。
sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse
これで完了。
FUSEはユーザ権限で、ファイルシステムを利用する方法なので、管理者権限が不要というメリットがある。
$ google-drive-ocamlfuse
以上で、認証に成功すれば、もうOK。
$ mkdir ~/gdrive
$ google-drive-ocamlfuse ~/gdrive
これで、マウントしてくれて、使えるようになる。
問題もあった
CUIだけで使っていれば、さくさく動作して、気持ちいい。
使い勝手も、悪くないし、何よりシェルスクリプトや、他のスクリプトからも使える。
ところが、誤ってGUIからアクセスすると、ディレクトリを読み取るのにアクセスが大量に発生するらしく、一瞬(いやかなりの時間)固まる。
まあ、これもキャッシュされれば、それほど遅くない?と思ったけれど、一向に改善されない。
しかも、マウントした状態だと、ホームディレクトリへのアクセスも待たされるようになってしまった。
CUIに戻って、操作するが、異様に遅い。
一旦、アンマウントして、接続しなおしてみるか…
と、考えて、以下のコマンドを実行。
$ fusermount -u ~/gdrive
いつもは、これでOKなのに、遅くなった状態で実行すると、エラーを吐く。
fusermount: failed to unmount /home/username/gdrive: Device or resource busy
なんでやねん。
他のファイルマネージャみたいなのは、すべて終了しているのに。
時間をおいて、実行してみたけれど、同じエラーを吐いてくれる。ダメだ。
仕方がないので、強制的にアンマウントする。 どうやって書くのか忘れてる…。
How to force unmount a busy device in linux.
にありましたゎ。
$ sudo umount -l ~/gdrive
とやれば、OKです。
ただし、管理者権限が必要なので、sudoをつけて実行です。
この手の細かな操作って、忘れやすいので、Memoとして残しておきます。
コメント
コメントを投稿
励みになりますので、簡単で良いので一言くださいませ。