10.12.2024
В этой статье мы рассмотрим вопрос - как на линукс сервере проверять свободное место на диске и если оно достигает какого-то указанного, в процентном соотношении, предела - мы получали по почте уведомление.
Создадим файл в произвольной директории:
# vi /var/scr/hd_space_mail.sh
После этого поместим в файл примерно такой код (подправить под ваши данные):
#!/bin/bash
CHECK=$(df /home | grep / | awk '{ print $5}' | sed 's/%//g')
SPACEMAX=90
if [ "$CHECK" -gt "$SPACEMAX" ] ; then
mail -s "SRV-MAIL: Заканчивается дисковое пространство" support@company.ru << EOF
В вашем корневом разделе сервера SRV-MAIL, осталось слишком мало дискового пространства. Используется: $CHECK%
EOF
fi
Где вместо /home вы можете указать другое расположение, например корень, а вместо 90 в параметре SPACEMAX можно указать другое значение. Это процент занятости диска, при превышении которого будет отправляться письмо на указанную вами почту.
Почту, соответственно, тоже указать свою.
Далее нужно сделать файл исполняемым:
# chmod +x /var/scr/hd_space_mail.sh
Кстати, если у вас утилиты mail нет - её можно поставить на дебиан-системах командой:
# sudo apt install mailutils
Конечно, советую проверять скрипт, прежде чем его добавлять в крон.
Проверили? Тогда идём дальше.
Открываем крон (шедулер заданий для автозапуска в линукс) и добавляем туда запуск нашего скрипта каждый день, в 9 утра:
# Check Space.
0 9 * * * /bin/bash /var/scr/hd_space_mail.sh
ОБЯЗАТЕЛЬНО после последней строчки делайте пустую строку, иначе крон будет ругаться.
Ну вот и всё, надеюсь у вас так же всё получилось. Удачи вам!