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