Linux 查看所有 NFS 服务器挂载目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
touch /mnt/mydisk/my-sh/nfs/check_nfs_shares.sh && cat > /mnt/mydisk/my-sh/nfs/check_nfs_shares.sh <<'EOF'
#!/bin/bash

# 定义一个包含所有 IP 地址的数组
IPs=("10.10.10.242" "10.10.10.245" "10.10.10.246" "10.10.10.247" "10.10.10.254")

# 遍历数组中的每个 IP 地址
for IP in "${IPs[@]}"; do
# 输出开始的分隔线
echo "----------------"

# 执行 showmount 命令并捕获输出和错误
output=$(showmount -e $IP 2>&1)

# 检查输出中是否包含特定的 RPC 错误信息
if echo "$output" | grep -q "clnt_create: RPC: Unable to receive"; then
# 如果包含错误信息,输出错误信息和 IP 地址
echo -e "IP: $IP \E[1;31m关机状态\E[0m"
else
# 如果不包含错误信息,输出 IP 地址和服务器已启动信息
echo -e "IP: $IP \E[1;32mNFS挂载目录:\E[0m"
# 输出 NFS 导出列表,移除 "Export list for" 部分,并设置为绿色
echo "$output" | grep -v "$IP:" | sed 's/^Export list for //' | while read -r line; do
echo -e "\E[1;32m$line\E[0m"
done
fi

# 输出结束的分隔线
echo "----------------"
done

EOF

chmod +x /mnt/mydisk/my-sh/nfs/check_nfs_shares.sh && /mnt/mydisk/my-sh/nfs/check_nfs_shares.sh