ジャンル不定の日記です。

JDでログ共有

ノートにもUbuntu(Xubuntu)入れて、2chはJDで見るようになったが、
2chブラウザのログ共有したい・・・

って考えてたんだが、
sshfsっての使えば良さそう。

sshfsは、
SSHでつないで、リモートのファイルシステムをマウントする感じのことができるツール。
これかなり便利だわ。


先に、ftpfsって、FTPをマウントしちゃうのも試してみたんだが、
ちとめんどい上に、パスワード使うからあまりよろしくない感じ。
sshfsの方は、秘密鍵だけでログインするようにしてればパスワード不要。

sambaとかローカルネットワークのファイル共有を先に考えてたけど、
どうも、うちの環境だとsambaでディレクトリ読み込むときにやたら時間がかかる。
多分、ルータ挟んでるのが原因だと思うんだが、
転送速度は問題ないんだが、ディレクトリ表示だけひどい・・・
Ubuntu機2台でWindowsが今1台だが、
Windowsから開く分には問題ないんだが、
Ubuntuから他端末のディレクトリを開くときだけ。

ってわけで、遅いからsambaはあまり使いたくないのと、
メイン機の方もほぼ常時起動だが、絶対ではないんで、
確実に常時起動してるレンサバをファイルシステムにできるならそれがいい。

ってな感じでsshfsを使うことに。


で、sshfsだが、
aptでsshfsを入れるだけで使える。
SSHログインできるようになってなければ、まずsshでパスワード無しでログインできるように設定。

ユーザー権限でマウントできるんで、
mkdir ~/sshfs
とか適当にマウントポイント作って、
sshfs ユーザー@ホスト:ディレクトリ ~/sshfs
ってな感じでマウント完了。
sshだけ準備できてれば、簡単。

最初、ログイン時に自動マウントしようと思ったが、
コマンド実行のタイミングと思うが、どうもうまくいかなかった。
けど、JDのログ共有だけだから、
JD起動用のシェルスクリプト用意して、
JD起動前にマウントすればいいね。
マウントしたプロセスが落ちたら自動アンマウントしてくれるぽいんで、アンマウント不要ぽい。


JDの起動スクリプトは、
#!/bin/sh

sshfs ユーザー@ホスト:ディレクトリ ~/sshfs
JD_CACHE=~/sshfs/jd JD_LOCK=~/.jd/JDLOCK jd
こんな感じ

変数JD_CACHEがログ保存ディレクトリ。
設定なんかも一緒みたい。
分けれればいいと思うんだが・・・

JD_LOCKで、多重起動チェックのロックファイル指定。
この変数は、Ubuntu10.04のJDだと効かない。
これ設定しないと、sshfs上だとロックファイルは作れないぽくて、起動時に警告でちゃう。
まあ、警告だけだから10.04は4月まで我慢だな。
設定も共有になっちゃうから、JDのバージョン同じほうが良さそうではあるけど。

複数端末で共有で排他制御も効かないと思うが、
同時起動しても終了時以外には保存しない感じだし、
万が一壊れても、2chのログだから重要じゃないし。