Verifique se há espaço livre no Linux, e-mail se for crítico

2

Acabei de lidar com um servidor que ficou sem espaço e gostaria de configurar o monitoramento agora, para evitar que ele seja crítico no futuro.

O que eu gostaria é receber um email enviado para a conta root (que encaminha para o meu email de trabalho) quando o espaço livre estiver abaixo de xx %, com ele sendo configurável.

Eu sei que posso usar o comando df -h para obter o layout de texto legível por humanos, mas não quero um relatório todos os dias. Quero ter apenas um relatório enviado para mim se determinadas partições / pontos de montagem estiverem sendo preenchidos e ainda tiver menos de uma determinada porcentagem.

Estou confortável com o script, mas não sei como eu faria isso. Abaixo está um exemplo de saída do comando que eu executo manualmente de qualquer maneira:

# df -h
Filesystem                                              Size  Used Avail Use% Mounted on
rootfs                                                   74G  6.4G   64G  10% /
udev                                                     10M     0   10M   0% /dev
tmpfs                                                   387M  320K  387M   1% /run
/dev/disk/by-uuid/615e2eca-0e01-4f3f-99d3-5a0560a78f9a   74G  6.4G   64G  10% /
tmpfs                                                   5.0M     0  5.0M   0% /run/lock
tmpfs                                                   773M     0  773M   0% /run/shm
/dev/md0                                                939M   51M  841M   6% /boot
/dev/md3                                                844G  535G  266G  67% /images
/dev/md2                                                2.7T  1.7T  955G  64% /var
    
por Canadian Luke 15.12.2014 / 22:49

1 resposta

3

Isso deve ajudá-lo:

#!/bin/sh

MOUNTPOINTS="/ /home"
THRESHOLD=90

for MOUNT in ${MOUNTPOINTS}; do

  CURRENT=$(df ${MOUNT} | grep / | awk '{ print $5}' | sed 's/%//g')

  if [ "${CURRENT}" -gt "${THRESHOLD}" ] ; then
    mail -s 'Disk Space Alert' root << EOF

Your ${MOUNT} partition remaining free space is critically low. Used: ${CURRENT}%
EOF

  fi

done

Isto é baseado fora do código por Malik Arjun .

    
por 15.12.2014 / 23:23