Автоматическая чистка логов в Linux с помощью Bash + find + xargs

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashlinuxлоги

👁 Со временем системные и docker-логи могут занять гигабайты места. Особенно если ты разрабатываешь микросервисы, гоняешь CI/CD пайплайны или просто давно не заглядывал в /var/log. Вместо того чтобы чистить всё вручную, лучше автоматизировать процесс через надёжный Bash-скрипт.

📝 Скрипт, который удаляет логи старше 7 дней, логирует действия и работает безопасно:

#!/bin/bash
LOG_DIRS=("/var/log" "/var/lib/docker/containers")
LOG_FILE="/var/log/log_cleaner.log"
DAYS=7

echo "[INFO] $(date): Запуск очистки логов старше $DAYS дней" >> "$LOG_FILE"

for DIR in "${LOG_DIRS[@]}"; do
  find "$DIR" -type f -name "*.log" -mtime +$DAYS -print0 | \
  tee -a "$LOG_FILE" | xargs -0 -r rm -f
done

echo "[INFO] Очистка завершена" >> "$LOG_FILE"

🔎 Что делает скрипт:

  • — Чистит .log-файлы старше 7 дней
  • — Работает с несколькими директориями
  • — Ведёт лог своих действий (вдруг что-то пошло не так)
  • — Не удаляет ничего без списка (-print0 | tee)
  • — Безопасен: -r в xargs предотвращает запуск без аргументов

📌 Как использовать:

  • • Скопируй код в файл, например log_cleaner.sh
  • • Сделай его исполняемым: chmod +x log_cleaner.sh
  • • Добавь в cron, чтобы запускался каждую неделю (или чаще)
  • • Проверь /var/log/log_cleaner.log после запуска

❗️ Такой подход поможет держать систему чистой, не теряя важные логи и не полагаясь на случай. Ну а если нужна гибкость — можно подключить logrotate или перейти на централизованный сбор логов (Graylog, Loki, ELK и пр).

tags: #bash #linux #логирование

❤️ @recura_tech

Скриншот тёмного терминала с примером Bash-скрипта для автоматической очистки логов в Linux; виден код, подсветка и брендинг RECURA.
Пример скрипта для автоматической очистки логов в Linux, показан в консоли.

Читайте так же