我正在寻找一个命令来检查 nfs 文件夹是否已软挂载,我的 fstab 是:
10.10.1.3:/home/share3 /home/share3 nfs soft 0 0
答案1
尽管我可能会使用mount
(如walinator 的回答)我自己认为man mount
我们应该改掉这个习惯:
The listing. The listing mode is maintained for backward compatibility only. For more robust and customizable output use findmnt(8), espe‐ cially in your scripts.
该findmnt
命令还提供了更多的灵活性 - 例如,您可以直接通过源或目标查找(无需grep
),并仅输出特定于文件系统的选项。比较:
$ mount -t nfs | grep public
192.168.1.127:/c/public on /mnt/nfs/public type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.127,mountvers=3,mountport=3097,mountproto=udp,local_lock=none,addr=192.168.1.127)
到
$ findmnt -nM /mnt/nfs/public -oFS-OPTIONS
rw,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.1.127,mountvers=3,mountport=3097,mountproto=udp,local_lock=none,addr=192.168.1.127
我认为它(目前)还没有提供直接获取特定选项的值的方法,因此仍然需要grep
或。awk
$ findmnt -nM /mnt/nfs/public -oFS-OPTIONS | grep -qE '\bsoft\b' && echo "soft" || echo "hard"
hard
就你的情况而言,
findmnt -nM /home/share3 -oFS-OPTIONS | grep -qE '\bsoft\b' && echo "soft" || echo "hard"
答案2
您可以使用mount
命令显示所有坐骑(或查看/etc/mtab
),使用grep
命令选择特定坐骑,然后使用另一个grep
命令进行检查soft
:
mount | grep /home/share3 | grep -q soft
if [[ $? -eq 0 ]] ; then
echo "/home/share3 is mounted with 'soft'"
else
echo "/home/share3 is not mounted with 'soft'"
fi