NFS的使用必将广泛,除了在网络以及存储方面的应用也经常可以应用到监控模块。这里我们就讨论一下NFS挂载的内容。在前面的文章中,我们曾经也介绍过相关的脚本,这里笔者又进行了一些修改,希望对您有用。如果nfs挂载的顺序没有按照fstab中写的顺序进行挂载,监控就会发出warning的警告,但报警信息中没挂载的硬盘信息是空的,实际查看机器确是所有挂载正常。于是对我的脚本进行了调整,将check_mount函数提前运行,然后根据LIST变量内容判断是否挂载正常,调整后脚本的如下:
- #!/bin/bash
- #VERSION="1.1"
- #AUTHOR by wenzizone.cn
- . /usr/local/nagios/libexec/utils.sh
- CHECKNAME="Mount NFS"//NFS挂载
- RESULT=""
- EXIT_STATUS=$STATE_OK
- NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $3 != "nfsd" && $4 !~ /noauto/ { print $1 }' /etc/fstab`
- NFSMTAB=`LC_ALL=C awk '$3 ~ /^nfs/ && $3 != "nfsd" && $2 != "/" { print $1 }' /proc/mounts`
- theend() {
- echo $RESULT
- exit $EXIT_STATUS
- }
- CHECK_MOUNT(){
- LIST=""
- for list in $NFSFSTAB
- do
- NFS_MOUNT=$(LC_ALL=C cat /proc/mounts |cut -d " " -f 1|grep "${list}$")
- if [ -z "${NFS_MOUNT}" ];then
- LIST="$LIST$list "
- fi
- done
- }
- if [ -n "${NFSMTAB}" ];then
- CHECK_MOUNT
- if [ -z "${LIST}" ];then
- RESULT="$CHECKNAME OK - NFS BE MOUNTED PROPERLY"
- EXIT_STATUS=$STATE_OK
- else
- RESULT="$CHECKNAME WARNING - ${LIST} NOT BE MOUNTED"
- EXIT_STATUS=$STATE_WARNING
- fi
- else
- RESULT="$CHECKNAME CRITICAL - ALL NFS NOT BE MOUNTED"
- EXIT_STATUS=$STATE_CRITICAL
- fi
- theend
这样NFS挂载监控应该就没有问题了。