TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #103 737
Логирование дискового пространства в Linux: автоматизация и контроль

Дисковое пространство - один из важнейших ресурсов системы. Постоянный мониторинг его состояния помогает избежать неприятных ситуаций, таких как переполнение разделов и остановка важных процессов. Логирование дискового пространства позволяет своевременно выявлять проблемы и анализировать историю использования.

Почему это важно?

Предотвращение проблем: Заранее узнавайте о нехватке места.
Анализ трендов: Отслеживайте, как быстро растёт использование места.
Автоматизация: Система сама уведомляет о критических ситуациях.


1. Создаём систему логирования дискового пространства. Базовый скрипт для логирования:


#!/bin/bash

LOG_FILE="/var/log/disk_usage.log"

# Текущая дата и время
CURRENT_DATE=$(date '+%Y-%m-%d %H:%M:%S')

# Состояние дисков
DISK_USAGE=$(df -h)

# Запись в лог-файл
{
echo "-----"
echo "Дата: $CURRENT_DATE"
echo "$DISK_USAGE"
} >> "$LOG_FILE"

echo "Логирование завершено. Данные записаны в $LOG_FILE"


Вывод в файле /var/log/disk_usage.log:


-----
Дата: 2024-11-05 14:00:00
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 30G 20G 60% /
tmpfs 2.0G 1.0M 2.0G 1% /dev/shm
/dev/sdb1 100G 50G 50G 50% /mnt/data


2. Автоматизация через cron. Добавьте скрипт в crontab, чтобы запускать его ежедневно:


crontab -e


Добавьте строку:


0 0 * * * /path/to/disk_logger.sh


Теперь скрипт будет запускаться каждый день в полночь.

3. Уведомления при критическом состоянии. Модифицируем скрипт для отправки уведомлений, если свободного места становится меньше 20%.


#!/bin/bash

LOG_FILE="/var/log/disk_usage.log"
THRESHOLD=20

# Проверка разделов
df -h | awk -v date="$(date '+%Y-%m-%d %H:%M:%S')" -v threshold="$THRESHOLD" 'NR>1 {gsub("%", "", $5); if ($5 > (100-threshold)) print date, $0}' | while read -r line; do
echo "Критическое состояние диска: $line" >> "$LOG_FILE"
echo "$line" | mail -s "Уведомление: мало места на диске" admin@bashtex.com
done


Если свободного места станет меньше 20%, лог будет дополнен, а администратору отправлено уведомление.

4. Анализ роста использования пространства:


grep "/dev/sda1" /var/log/disk_usage.log | awk '{print $2, $3, $5}' | tail


Визуализация:
Сохраните данные в CSV для анализа:


grep "/dev/sda1" /var/log/disk_usage.log | awk '{print $1, $5}' > disk_usage.csv


Затем откройте CSV в Excel или LibreOffice для построения графиков.

Логирование дискового пространства помогает предвидеть и устранять проблемы до того, как они повлияют на работу системы, а также производить различные анализы.

BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →