[Linux] FUSEを使ってみよう

2017年9月11日月曜日

FUSE linux

fusermount

Linuxでユーザ側のアプリケーションレイヤーでファイルシステムを実現する仕組みとして、FUSE(Filesystem in Userspace)がある。
これを使うと、いろんなものをファイルシステムとして扱うことができる。

https://github.com/libfuse

まず必要なのはfusermountなので、ディストリビューションでパッケージとして用意されている場合は、パッケージでインストールしてしまおう。
fusermountコマンドは単独で使うというより、後述のコマンドでマウントしたファイルシステムをアンマウントするときに使う。

$ fusermount -u /path/to/mounted

sshfs

sshでの接続先とファイルのコピーをする場合はscpやsftpを使うと思うけど、恒常的にファイルのやり取りをしたい場合はファイルシステムとしてマウントされている方が使いやすいよね。
これを実現してくれるのが、sshfsになる。
これも、インストールされていなければ、パッケージでインストールしてしまおう。

例えば、カレントディレクトリにmntディレクトリを作成して、192.168.1.2のuserのホームディレクトリをmntにマウントする場合は以下のようにする。

$ mkdir mnt
$ sshfs user@192.168.1.2: mnt

注意点としてはホスト名のあとに:(コロン)が必要なところ。
使ったあとはfusermountでアンマウントしておこう。

$ fusermount -u mnt

archivemount

archivemountを使うと、圧縮されたファイルの中身をそのままファイルとして見ることができる。

https://github.com/bramp/archivemount

$ archivemount foo.zp mnt

これも、使ったあとはfusermountでアンマウントしておこう。

$ fusermount -u mnt