自動マウントafuse

私は、ディスカバリーの問題、つまりオンデマンドで自動的にファイルシステムを自動的にマウントすることについて話したかったのです。 ただするのは素晴らしいことではありません:

ls /mnt/remote/web.example.com/var/lib/www/ 

そして、意図的に接続を確立せずに、すぐにWebサーバーのファイルを表示しますか? 私はこれを長い間使用しており、最も重要なことは:


それは何で、なぜ


さまざまなシステムで使用できますが、もちろんsshfsで最も便利です 。 多くの人がそれを扱っていると思いますが、本当に便利ですが、リモートファイルシステムを歩き回る必要がある場合は、毎回マウントする必要があります。

 sshfs hostname: mountpoint 

数百のリモートサーバーで作業する場合、特に1つのリモートサーバーから別のリモートサーバーに小さな構成ファイルをすばやく転送する場合など、これは非常に面倒です(sshfsを使用して大きなファイルをダウンロードするのはあまり効率的ではなく、rsyncまたはbbcpを使用することをお勧めします) 。

Afuseはオープンソースプロジェクトであり、それ自体がfuseファイルシステムです。 最新のディストリビューションのほとんどで利用可能です。

その説明に関する非常に良い記事とセットアップはすでにHabréにありました 初めて試す人は誰でもそこに送ってください。

私たちは、自分自身を繰り返さないために、もう少し先に進みます。

注意したいのは、RPMベースのディストリビューション(Fedora、CentOS、RHEL、Scientific Linuxなど)では、yum / dnfを使用する必要があることです。

 dnf install afuse 

CentOSなどの古いシステムでは、dnfの代わりにyumを使用します。

キー、ホスト、およびマウントオプションの設定は、マニュアルを常に参照できる微妙な点で、大きく異なることはほとんどありません。

Afuse automount


あなたはすでに遊んでいて、sshfsをその場でマウントするのが好きだったと思います。 前述の記事で唯一のものは、ヒューズ自体をマウントする非常に湾曲した方法です。 「あなたは、他のファイルシステムをマウントするファイルシステムを毎回手動でマウントする必要があるのはどうしてですか!?」

それがまさに私がそれをやった方法であり、それを共有したかったのです。

実際、すべてのメカニズムはすでにシステム内にあります。 したがって、afuse自体はファイルシステムなので、/ etc / fstabから標準的な方法でマウントしないのはなぜですか?

原則として、これは非常に可能ですが、多くの望ましい議論を伝える直接的な方法はありません。

したがって、スクリプトラッパー/usr/sbin/mount.afuseを作成することになっています( 要点がだれにとっても便利であることを説明しました。さらに詳しい説明があります)。

 # Mount under user and group which are owners of mount point su -l $( stat --format=%U "$2" ) -c "afuse -o mount_template='sshfs -o reconnect -o auto_cache -o kernel_cache %r:/ %m' -o unmount_template='fusermount -u -z %m' -o auto_unmount '$2'" 

実行可能にすることを忘れないでください:

 chmod +x /usr/sbin/mount.afuse 


これで、/ etc / fstabに新しいシステムマウントポイントを追加する準備ができました。
 afuse# /mnt/remote afuse auto 0 0 

これ以降、システムを再起動した後でも、afuseがすべてマウントされ、一部のプログラムがそのような方法で削除されたファイルを処理した場合、リモートホストへのすべての接続が自動的に復元されます。 何かが利用できないというエラーはありません。

もちろん、必要に応じてマウントポイントを変更できます。たとえば、/ remoteなどです。 ディレクトリを作成することを忘れないでください。

2017年2月14日更新: Self_Perfectionコメントによると、ヘルパーのコードは、ディレクトリのマウント元のユーザーを取得するためにわずかに改善されました。 それはよりシンプルで理解しやすくなりました。

Source: https://habr.com/ru/post/J321636/


All Articles