2

Я только что закончил работать с сервером, на котором не хватило места, и хотел бы настроить мониторинг на нем сейчас, чтобы он не стал критическим в будущем.

Я хотел бы, чтобы электронная почта отправлялась в root учетную запись (которая пересылается на мою рабочую электронную почту), когда свободное место меньше xx %, с возможностью его настройки.

Я знаю, что могу использовать команду df -h чтобы получить удобочитаемый текстовый макет, но мне не нужен отчет каждый день. Я хочу, чтобы мне отправлялся отчет только в том случае, если некоторые разделы / точки монтирования заполняются, и у них по-прежнему свободно менее определенного процента.

Мне удобно писать сценарии, но я не знаю, как бы я поступил по этому поводу. Ниже приведен пример вывода команды, которую я в любом случае запускаю вручную:

# 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

1 ответ1

3

Это должно заставить вас идти:

#!/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

Это основано на коде Малика Арджуна.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .