Скрипт мониторинга дискового пространства для Astra Linux
Описание скрипта
Скрипт предназначен для мониторинга свободного места на дисках и отправки уведомлений по электронной почте при достижении критического порога заполнения.
Требования
- Установленный почтовый клиент mailutils
- Доступ к SMTP-серверу
- Права на выполнение скрипта
Код скрипта
bash
#!/bin/bash
# Настройки уведомлений
THRESHOLD=90 # Порог в процентах
SENDER="admin@example.com" # Адрес отправителя
RECEIVER="recipient@example.com" # Адрес получателя
SMTP_SERVER="smtp.server.com" # SMTP сервер
# Функция проверки дискового пространства
check_disk_space() {
# Получаем информацию о заполненности всех разделов
df -h | grep -vE '^Filesystem|tmpfs|cdrom' | while read line; do
# Извлекаем процент заполнения
USE_PERCENT=$(echo $line | awk '{print $5}' | sed 's/%//g')
MOUNT_POINT=$(echo $line | awk '{print $6}')
# Проверяем превышение порога
if [ "$USE_PERCENT" -gt "$THRESHOLD" ]; then
echo "Критическое заполнение раздела $MOUNT_POINT: $USE_PERCENT%"
return 1
fi
done
return 0
}
# Функция отправки уведомления
send_notification() {
SUBJECT="Критическое заполнение диска"
MESSAGE="Обнаружено критическое заполнение дискового пространства:
$(df -h | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{print $5, $6}')
Пожалуйста, освободите место на диске."
# Отправка письма
echo "$MESSAGE" | mail -s "$SUBJECT" -r "$SENDER" -S smtp="$SMTP_SERVER" "$RECEIVER"
}
# Основная логика скрипта
if check_disk_space; then
echo "Все разделы в норме"
else
send_notification
fi
Настройка и использование
- Сохраните скрипт в файл, например disk_monitor.sh
- Сделайте скрипт исполняемым:
bash
chmod +x disk_monitor.sh
- Настройте параметры в начале скрипта:
- Порог заполнения (THRESHOLD)
- Email отправителя и получателя
- SMTP сервер
- Добавьте скрипт в cron для автоматического запуска:
bash
crontab -e
Пример записи для запуска каждые 6 часов:
0 */6 * * * /path/to/disk_monitor.sh
Дополнительные возможности
- Можно добавить логирование в файл
- Расширить список отслеживаемых разделов
- Настроить разные пороги для разных разделов
- Добавить проверку конкретного каталога через команду du
Скрипт будет проверять все разделы, кроме tmpfs и cdrom, и отправлять уведомление, если какой-либо раздел превысит заданный порог заполнения.