Bash Советы - Bash Scripting | Linux Terminal & Shell. Скрипты и Автоматизация задач. Командная строка для Sysadmin и DevOps. Уроки Баш, Zsh и CLI Tools. Unix Console.
IT и технологии · 29 января 2026 г.
🧹 Bash-скрипт для очистки старых логов с уведомлением — 29 января 2026 г. в 08:30:02.410
🧹 Bash-скрипт для очистки старых логов с уведомлением Иногда логи занимают слишком много места, и их нужно периодически чистить. Этот скрипт удаляет логи старше 14 дней в заданной папке и шлёт уведомление на почту, если удалено более 500 МБ. #!/bin/bash LOG_DIR="/var/log" DAYS=14 MAX_REMOVED_MB=500 EMAIL="admin@yourdomain.com" # Подсчитываем общий размер файлов, которые будут удалены REMOVED_SIZE=$(find "$LOG_DIR" -type f -mtime +$DAYS -print0 | du --files0-from=- -ch | grep total$ | awk '{print $1}') REMOVED_SIZE_MB=$(echo $REMOVED_SIZE | sed 's/M//' | awk '{print int($1)}') # Удаляем старые логи find "$LOG_DIR" -type f -mtime +$DAYS -delete # Если удалено больше MAX_REMOVED_MB, отправляем уведомление на почту if [ "$REMOVED_SIZE_MB" -gt "$MAX_REMOVED_MB" ]; then echo "Удалено логов на $REMOVED_SIZE из $LOG_DIR" | mail -s "Удаление логов" "$EMAIL" fi 🔹 Что делает скрипт: - Находит старые логи, считает их общий размер. - Удаляет только если файлы старше 14 дней. - Если удалено больше заданного лимита (по умолчанию 500 МБ) - уведомляет по почте. Обрати внимание: Для работы уведомления нужна установленная утилита mail (например, из пакета mailutils или sendmail). 👉 @bash_srv

