余白の書きなぐり

aueweのブログ

sshfsでリモートのディレクトリをマウント

リモートのデータをローカルにマウントする意義

多くの場合リモートの環境は貧弱で、そして解析すべき豊富なデータが眠っている。 一方ローカルの環境は最強だが、解析すべきデータは無い。 このミスマッチを解消するために、リモートの有用なディレクトリをローカルにマウントする作戦。筋が良い。

sshfsを使えばこの作戦が実行できる。 つまり @dokoka という名のリモートサーバー にある /achira/ ディレクトリを、 ローカルの空ディレクトリ /kochira/ にマウントできる。

何より便利なのは、ローカルにマウントした後、リモートの /achira を直接編集すると、ローカルの /kochira/ に即座に反映されるところ。 逆に、ローカルで /kochira/ を編集すると、リモートの /achira/に反映される。

具体的な効能としては、たとえばローカルにしかインストールされていないリッチなソフトでリモートのファイルを解析できる。 あるいはローカルの .zshrc や .vimrc の下でリモートのファイルを編集できる。 他には、リモートで gnuplot して得た pdf ファイルをローカルで直接開けるようになった。 リモートには X-window-system が無いので、今まで毎度毎度scpしていたが、今後は scp せずに済む。 ありがたい。

sshfsのインストール

LinuxMintならaptで一撃だった。 ローカルで以下のコマンドを実行すればよい。

$ sudo apt-get install sshfs

リモートのサーバーについては何も設定しなくてよい。

sshfsの使い方

前提として、リモートの @dokoka サーバーに ssh でアクセスできるとする。 sshfsを使うには、ローカルで以下のコマンドを実行すればよい。 /kochira/achiraは、適宜/home/auewe/datadir~/datadirのように読み替えること。

$ mkdir /kochira
$ sshfs username@dokoka:/achira /kochira
### scpでリモートのディレクトリをコピーするのと同じ構文

これで @dokoka という名のリモートサーバー にある /achira/ ディレクトリを、 ローカルにある空のディレクトリ /kochira/ にマウントできた。

アンマウントするには、ローカルで以下のコマンドを実行。

$ fusermount -u /kochira

参考 sshで他マシンのファイルシステムをマウントするには