我需要两个脚本的帮助,我试图将其作为一个脚本。有两种不同的方法可以检测是否存在错误的NFS挂载问题。一个是,如果有问题,做一个df
将挂起,另一个是df
工程,但有一个find (mount name) -type -d
将会捕获挂载的其他问题。Shell脚本帮助
我想结合脚本来捕捉这两个问题到它运行的地方find type -d
,如果有问题,返回一个错误。如果发生第二个NFS问题并且查找挂起,请在2秒钟后终止find命令;运行脚本的第二部分,如果发生NFS问题,则返回错误。如果没有发生任何类型的NFS问题,则返回OK。
MOUNTS="egrep -v '(^#)' /etc/fstab | grep nfs | awk '{print $2}'"
MOUNT_EXCLUDE=()
if [[ -z "${NFSdir}" ]] ; then
echo "Please define a mount point to be checked"
exit 3
fi
if [[ ! -d "${NFSdir}" ]] ; then
echo "NFS CRITICAL: mount point ${NFSdir} status: stale"
exit 2
fi
cat > "/tmp/.nfs" << EOF
#!/bin/sh
cd \$1 || { exit 2; }
exit 0;
EOF
chmod +x /tmp/.nfs
for i in ${NFSdir}; do
CHECK="ps -ef | grep "/tmp/.nfs $i" | grep -v grep | wc -l"
if [ $CHECK -gt 0 ]; then
echo "NFS CRITICAL : Stale NFS mount point $i"
exit $STATE_CRITICAL;
else
echo "NFS OK : NFS mount point $i status: healthy"
exit $STATE_OK;
fi
done
使用'set -vx'来帮助调试脚本。当您检查输出时,很多问题都将显而易见。祝你好运。 – shellter