可能であれば、私のホームディレクトリがNFSマウントになり、そうでない場合はローカルディレクトリになりたいです。一般的なネットワークから離れたいノートブックを想像してみてください。私が今日持っているのは、家にNFS共有をマウントする自動マウントマップです。私はスタック交換を調べていて、codaを提案しました。コンピュータにnfsマウントのローカルコピーを保持します。しかし、これは非常に古いプロジェクトであり、適切なリポジトリには見えないため、これはうまく機能しない可能性があると信じています。
私がやろうとしているのは、次のようにnfsホームディレクトリを/ nethomeに自動マウントすることです。
/etc/auto.nethome * -fstype=nfs4,rw,sec=sys,soft,rsize=8192,wsize=8192,no_root_squash h2gt2g.deepthot.aa:/volume1/homes/&
mkdir -p /nethome/me
/etc/fstab: /home/me /nethome/me none defaults,bind 0,0
残念ながら、これはまったく機能しません。結局のところ、バインドされたかまったく機能しません。そんなに簡単なことはできないと思います。
他の人がこのようなことを成功させたことはありますか?これが人がすることのようです。
ところで、私は約20年間、すべてのコンピュータ/VMにnfsホームディレクトリを自動マウントしてきました。先ほど説明したのと同じようなことをしたかったのですが、できませんでした。
答え1
最も簡単な解決策は、ラップトップに「オンラインハウス」と「実際の家」を2つの別々のオブジェクトとして置くことです。次に、.profile(実際の家にあります)に次のスクリプトを入力します。
if [ -e /nethome/me/.profile ]; then
HOME=/nethome/me/
cd $HOME
. ./.profile
exec bash
fi
デフォルトでは、お住まいの地域に「実際の」住宅がまだありますが、ネットワークが利用可能な場合は、その住宅が新しい家として使用されます。これにより、異なるネットワークに対して複数の家を作成することもできます。
ただし、私はまだ$ HOMEを使用せずに、ネットワークに関連付けられている(ない)フォルダのエイリアスセットを直接作成し、特定のネットワーク上の実際のディレクトリがある場所に基づいてそのエイリアスを設定することをお勧めします。それは次のとおりです。
if [ -d /mynas/projects/projectA ]; then
projectA=/mynas/projects/projectA
elif [ -d /company/group/somelegacygarbage/projectA ]; then
projectA=/company/group/somelegacygarbage/projectA
else
projectA=/home/me/projects/projectA
fi
後で入力する方が簡単になり、cd $projectA
すぐに最も関連性の高いディレクトリに移動します。
答え2
私はネットワークホームディレクトリ(同じ大学のCodaに似たAFS)を持つ複数のコンピュータを管理しています。sssdの制限により、自動マウントシステムを使用してホームディレクトリをネットワークパスに動的にマウントします。またはネットワークが利用できない場合はローカルディレクトリです。 (実際にはもっと複雑で、cifs automount dirも試しました)
デフォルトでは、自動マウントでは直接マウント定義の代わりにプログラムを使用できます。たとえば、
/home program:/etc/auto.home
その後、このプログラム(/etc/auto.home)の出力は、質問のNFSマウント定義に似ているはずです。または決定したシェルロジックに基づいて、ローカルディレクトリにマウントをバインドします。