让 autofs 知道其映射文件的任何更改(例如auto.home
下面的更改)而不需要在 RHEL 6.7 上停止服务的最佳方法是什么?
如果地图被修改,则更改将立即生效。如果修改了 auto.master 映射,则必须重新运行 autofs 脚本才能激活更改。
但是,如果我更改我的auto.home
更改,autofs 不会自动看到这些更改。另外,如果我随后运行,service autofs reload
更改仍然看不到。这些更改只有在我运行后才会生效service autofs restart
。但是,这将要求所有用户停止处理任何 NFS 共享文件夹,直到服务重新启动完成。
更改是否应该自动生效或至少在我运行后生效service autofs reload
?我在这里做错了什么?
我使用的配置见下文:
我在两台 RedHat Linux 6.7 机器上进行了以下简单配置,一台充当 NFS 服务器,另一台充当客户端。
NFS 服务器:
$ cat /etc/exports
/home/user1/NFS-test *(rw,sync)
/home/user2/NFS-test *(rw,sync)
NFS 客户端:
$ cat /etc/auto.master
/misc /etc/auto.misc
/net -hosts
/- /etc/auto.home --temeout=300
+auto.master
$ cat /etc/auto.home
/home/user1/NFS-test -ro,soft,intr server:/home/user1/NFS-test
/home/user2/NFS-test -ro,soft,intr server:/home/user2/NFS-test
这工作正常,两个用户(user1
和user2
)都可以NFS-test
在客户端计算机上的主文件夹下看到自己的目录。
现在第二行被删除auto.home
了
$ cat /etc/auto.home
/home/user1/NFS-test -ro,soft,intr server:/home/user1/NFS-test
然后我运行service autofs reload
以更新共享。然而,变化auto.home
是看不到的,并且/home/user2/NFS-test
可以继续从客户端计算机访问。
另一方面,如果我运行,service autofs restart
则映射已正确更新,/home/user2/NFS-test
在客户端上不可见。
我希望能够刷新 NFS 共享以响应更改,auto.home
而无需先停止 autofs,以避免要求所有用户先注销。这可能吗reload
?还有其他方法可以做到这一点吗?
更新
由于我的设置相对较小(1 个服务器和 3 个客户端),并且仅导出两个文件夹(一个只读和一个读写),因此我决定放弃使用autofs
NFS,而是通过在每个客户端上进行编辑来直接使用 NFS /etc/fstab
。对于如此小的设置,我希望与autofs
.如果有人不这么认为,请告诉我。
如果有人感兴趣,这是我的设置:
服务器导出以下文件夹:
/export
:所有软件所在的位置(只读)/home/shared_homes
:这里每个用户都有一个文件夹,该文件夹会导出到所有客户端,并自动链接到其主目录。例如,用户bob101
将有一个/home/shared_homes/bob101
链接到的文件夹/home/bob101/mySharedWorkspace
答案1
您正在使用直接地图。对于直接映射,需要重新启动automount。我建议您使用间接映射来完成您想做的事情。