Monitorizar Filesystem externo (NFS/CIFS)

    Si disponemos de volúmenes externos como NFS/CIFS, seguro nos hemos encontrado problemas al escribir o que no están en los equipos montados.
    El siguiente script permite monitorizar si está o no montado y si tiene la posibilidad de escribir.

    # EXTRACCION PUNTO MONTAJES
    FILESYSTEMS=$(egrep ' cifs | nfs ' /etc/fstab | awk '{print $2}' | egrep -v '^#' | sort | uniq)
    
    # ANALISIS UNITARIO PUNTO DE MONTAJE
    for FILESYSTEM in "${FILESYSTEMS[@]}"; do
     FILESYSTEM_CHECK=$(/usr/bin/awk -F. '$3 == /cifs|nfs/' /proc/mounts | awk '{print $2}' | sort | uniq)
      if [[ ${FILESYSTEM} == "${FILESYSTEM_CHECK}" ]];then
        # SE ENCUENTRA MONTADO
        TOUCHFILE="${FILESYSTEM}/RANDOM_$$"
        timeout 2s touch ${TOUCHFILE}
        if [ $? -eq 0 ]; then
            echo [ OK ] WRITE FILE $TOUCHFILE
            rm -rf ${TOUCHFILE}
            echo [ OK ] MOUNTED ${FILESYSTEM}
        else
            # NO SE PUEDE ESCRIBIR EN UN FILESYSTEM
            echo [ KO ] WRITE FILE $TOUCHFILE
            GLOBAL=1
        fi
      else
        # NO ESTA MONTAD UN FILESYSTEM
        echo [ KO ] MOUNTED ${FILESYSTEM}
        GLOBAL=1
      fi
    done
    
    LITERAL_ALERTA='FileSystems compartidos montados'
    INSTANCE_ID='MONIT_MOUNT'
    
    # RESUMEN DEL SERVIDOR. ES UN "KO" SI UN FILESYSTEM NO ESTA MONTADO
    if [[ ${GLOBAL} -eq "1" ]];then
        echo "NOK|CRITICAL|$INSTANCE_ID|$LITERAL_ALERTA"
    else
        echo "OK|NORMAL|$INSTANCE_ID|$LITERAL_ALERTA"
    fi
    

    Leave a Reply

    Your email address will not be published. Required fields are marked *