2010年12月22日水曜日

Dropbox でリモート操作

Dropbox を使って、リモート操作する仕組みを作ってみた。
Windosws の場合は、
とかといったツール等を使用する事となるが、Linux系ならシェル・スクリプトなど自作も簡単だ。
Windosws でも cygwin を使えばLinux系のコマンドが動作するので、cron、make、bash を組合せてやってみた。

まず、「My Dropbox」フォルダ内の適当な所に専用のフォルダを作成し、「Makefile」を作成する。
・Makefile
SH=hogehoge.sh
RESULT=sh.log

${RESULT}: ${SH}
        env LANG=ja_JP.UTF-8 ./${SH} > ${RESULT} 2>&1
シェル・スクリプト「hogehoge.sh」の出力を「sh.log」に書き込むようにし、これらのファイルに依存関係を設定する事により、一度だけ実行するようにできるし、出力結果も Dropbox 内なので、リモートで参照できる。
hogehoge.sh」を更新すれば、新たなシェル・スクリプトの実行が行なえる。

次に、リモート操作したいPCで、cron の設定を行なう。
*/5 * * * * cd Makefileのあるディレクトリ; make > /dev/null 2>&1
上記の場合、5分間隔で make を実行するので、シェル・スクリプトを更新しても最大5分後に実行される事となる。

2010年12月19日日曜日

どうする Delicious

こんな記事が出て、どうやら Delicious が廃止される可能性が高い。
私は結構使っていて(1542件)、しかも、仕事関係で参考にしたところをブックマークしているので、無くなるのは少々まずい。
しかし、早速、以下のような記事が出てきた。
もし、本当に Delicious が無くなってしまうなら、時期を見て、少なくともエクスポートしておかないとだなあ。
移行先は、もう少し検討の余地ありかな。「はてなブックマーク」が一番よいようだが…。

12/21 追記
当面、廃止にはならないようだが、依然、不透明だ。

2011/04/29 追記  Delicious の売却先が決定 した。

2010年12月18日土曜日

Dropbox クライアントがバージョンアップ

Dropbox のクライアントがバージョンアップして、0.7.110 から 1.0.10 となった。
新バージョンの特徴は、今までは、「My Dropbx」丸ごとしか同期できなかったが、一部選択したフォルダだけを同期する事ができるようになった事だ。
クライアントの「Preference」から「Advanced」タグを開き、


「Selective Sync」ボタンを押すと、


と、フォルダの一覧が出て、同期するフォルダを選択できる。
さらに「Switch to Advanced view」ボタンを押せば、サブフォルダまでツリー表示され選択できる。



 これで、「別のマシンで使うときに、一部のファイルだけ使いたい」、などの場合、今までなら、別アカウントを作って共有する、といった方法だったが、これで、同一アカウントでもできる。
でも、今のところは、そんな用途は無いので、しばらくは、この機能を使う予定なしだな。
netwalker で Dropbx のクライアントが動けば、この機能使うんだが…。

2010年12月17日金曜日

DropDAV

Dropbox を WebDAV でアクセスできるというサービスができた。
Netwalker では、Dropbox のクライアント・アプリが無いので、さっそく使ってみることとした。
また、今、仕事にでかけている某T社では、Dropbox がアクセス禁止なので、こちらでも使おうと思っている。

さて、WebDAV のクライアントだが、Windows なら標準でマイ・ネットワークから使えるが、それではおもしろくないので、WebDAV クライアントを探してみた。
エクスプローラ風のものや、ドライブに割り付け可能なものなどあったが、クライアントによっては接続できない場合もあり(特にプロキシ経由だと)、結局、以下のものを使う事とした。
 本当は、ドライブに割り付け可能ならば、コマンドラインからも操作できて良いのだが、某T社で使う場合、あまり頻繁に使うとヤバそうなので、エクスプローラ風の「CarotDAV」とした。これは作者が日本人だし、結構さくさく動くので、使い勝手も良い。

次に、Linux だが、GNOME には WebDAV のクライアント機能があるが、DropDAV には接続できなかった。
そこで、「davfs2」を使ってみる事とした。
まず Synaptic から「davfs2 1.3.3」と「fusedav 0.2」をインストールする。「davfs2」は、仮想ファイルシステムの fuse か coda を使うようになっているが、fuse のほうが導入が簡単なのでこちらを使う。coda だと、カーネルの再構築が必要となる。

インストールしたら、以下の設定を行なう。
$ sudo chmod u+s /usr/sbin/mount.davfs 
davfs2 のマウントコマンドに、root権限のsetuidを設定しておく。これで、一般ユーザが直接マウント可能となる。

・ /etc/davfs2/davfs2.conf
dav_user        iizu
dav_group       iizu
davfs2 を使用するユーザとグループを指定する。個人使用のマシンなので、自分のユーザとグループに限定してしまった。

・ ~/.davfs2/davfs2.conf
use_locks       0
server_charset UTF-8
・ ~/.davfs2/secrets
https://dav.dropdav.com DropboxのID パスワード
「~/.davfs2/」以下のファイルは、「/etc/davfs2」のものをコピーすれば良い。
「secrets」は権限を 600 にしなければならない。

・ /etc/fstab
https://dav.dropdav.com  /home/iizu/dav   davfs   user,noauto   0   0
 fstab にマウント・ポイントやオプションを記述しておく。これで、以下のコマンドでマウントできる。
$ mount /home/iizu/dav
$ df -h
...
https://dav.dropdav.com         77G   39G   39G  50% /home/iizu/dav
ファイル/ディレクトリ名が日本語のものは全く表示されない。
ただし、見えているファイルやディレクトリの読み書きは普通にでき、変更結果は、まずまず即座に Dropbox 本体に反映されている。
しかし、Dropbox に置いてある CVSリポジトリに対して cvs commit を行なうとエラーとなる。ファイルに対する情報の取得が一部うまくいっていないようだ。

まあ、とりあえずマウントできる程度で我慢というところかな。