Rcloneを用いたファイルシステムのマウント方法
Rclone
はクラウドサービスなどのファイルとディレクトリを同期するためのコマンドラインツールである。
公式ページではS3などのクラウドサービスをローカルにマウントできることがメリットとして記載されているが、sshfs
のようにssh接続したリモート先をwindowsにネットワークドライブとしてマウントすることもできる。
Rclone
なのか
なぜ同じ事をしたいなら前述のsshfs
でも良いのではと思うが、sshfs
は既に開発が終了しているため、メンテナンスが行われず、いずれ使えなくなる可能性がある。
そのため代替ツールとなりうるRclone
に着目した。
sshfs
については以下を参照。
インストール方法
rclone/releasesから最新版のrclone
をダウンロード。実行ファイル形式で配布されているのでインストールの必要はなし。
また、依存パッケージとしてWinFspが必要なので(参考)、こちらもインストール。
マウント方法
詳細なコマンドについてはこちらを参照
まずは事前準備としてリモート先の情報を記載したrclone.conf
を作成する。
rclone config
で対話的にリモートの情報を設定してもよいが、手入力したほうが早い。
以下のようにrclone.conf
に必要情報を入力する。
[ホスト名]
type = sftp
user = リモートユーザー名
host = ホスト
port = ポート番号
key_file = 鍵ファイルのパス # 鍵認証を設定している場合
公式ドキュメントによると~/.config/rclone/rclone.conf
がデフォルトで読み込まれる仕様となっているが、上手く読み込んでくれないので(Windowsで実行しているのが原因?)rclone.exe
を格納しているパスに格納する。
更にWindows側でssh-agent
が起動していない場合は別途しておく必要がある。
-
サービス
アプリを開く(サービス
で検索するとヒットする) - サービスリストの
OpenSSH Authentication Agent
をクリック - スタートアップの種類を
自動
に変更
上記を設定後、以下のコマンドでマウント
rclone mount ホスト名: Z: --dir-cache-time 1m
-
--dir-cache-time
はリモートの更新を取得する頻度
リモートの更新を1分毎に行うように設定 - 読み込む
rclone.conf
を明示的に指定したい場合は--config
オプションを使うrclone --config 設定ファイルのパス mount ホスト名: Z: --dir-cache-time 1m
- コマンド実行中のターミナルを閉じるとマウントが自動的に解除されてしまうので注意。
-
ssh
コマンドと同様に-v
オプションで接続時のデバッグ情報を出力することができる。rclone -v mount ホスト名: Z: --dir-cache-time 1m
-vvv
オプションもあるので接続が上手くできない場合は-vvv
オプションを付与してどこで
エラーが発生しているか確認すること。
注意点
上記のマウントコマンド時に、--daemon
オプションを使うことで本来ならバックグラウンドで起動を維持することが可能だが、Windowsでは現状非対応...。 この点に関してはsshfs
のほうが優れている。
mount
コマンド以外にも様々なコマンドが提供されているので一読しておくとよい。
rclone --help
コマンドで確認可能。
sshfs
との違い
sshfs
から移行したいところだが、以下の通り少なくともWindowsでは
まだ完全互換というわけにはいかない状態だった。
メリット
- 開発が終了していない
- ドキュメントが豊富
- 設定ファイルにリモート先の情報を記述できるのでマウントが楽
デメリット
- Windowsではバックグラウンドでマウントを維持することができない
コマンド実行中のターミナルを起動し続ける必要がある。
A.I.
-
EC2でもUbuntu環境はマウントできたが、Amazon Linux2環境はマウントできなかった。
sftpサーバーがプリインストールされていない?? - S3などもマウントできるようなので方法がわかれば手順を記載予定
Discussion