我需要兩個腳本的幫助,我試圖將其作爲一個腳本。有兩種不同的方法可以檢測是否存在錯誤的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