Autofs冗余故障转移到本地挂载点

我们使用autofs从本地服务器挂载NFS分区。 我们有一个冗余的服务器,我们正在使用autofs(5)手册页中提到的方法来解决这个问题。 这一切工作正常。 我们想要做的是向由auto.master中的“program:/ path / to / script”表示的脚本确定的挂载点添加第三个故障转移。

原因是我们在本地快速服务器上保留了远离我们站点的一些软件工具的冗余副本。 我们希望主要使用这些本地服务器,但如果它们都不可用,则将故障转移到慢速服务器。 远程服务器的挂载点是通过脚本来控制的,并且可能在我们不知情的情况下进行更改,所以我们不能简单地将其他主机添加到冗余列表中。

有谁知道这是可以做到的,怎么样?

一个快速和肮脏的方式,我想我的头顶是这样的:

#!/bin/bash timeout 5 ls /NFS_mountpoint && exit 0 || { service autofs stop ; ln -s /localFS /NFS_mountpoint ; } if [[ $(timeout 5 ls /NFS_mountpoint >/dev/null 2>&1)$? -eq 0 ]]; then mail -s "The NFS has failed over to local FS" [email protected] else mail -s "Problem on $(hostname)" [email protected] fi 

这可以每分钟运行一次cronjob(* * * * *)。 您可能必须重新命名或删除NFS挂载点才能符号链接,因此您可能需要将其更改为mv /NFS_mountpoint /NFS_mountpoint.OLD && ln -s /localFS /NFS_mountpoint