TGViewer
BashMaster BashMaster @bash_help · 8.84K subscribers
Post #1094 2.33K
⚙️ Bash-скрипт для архивации старых логов

✔️Иногда логи на сервере растут быстрее, чем хочется, и начинают занимать всё свободное место.

➡️ Простой скрипт, который:
💠Находит файлы с расширением .log, изменённые более чем N дней назад.
💠Архивирует их в тарболл с датой.
💠Удаляет оригиналы после успешного архива.

#!/usr/bin/env bash
#
# Архивация старых логов >7 дней
# Сохраняет в /var/backups/logs/YYYY-MM-DD_logs.tar.gz

# Настройки
LOG_DIR="/var/log" # Каталог с логами
BACKUP_DIR="/var/backups/logs" # Куда складывать архивы
DAYS_OLD=7 # Возраст файлов в днях

# Создаём папку для бэкапов, если нет
mkdir -p "$BACKUP_DIR"

# Текущая дата
DATE=$(date '+%Y-%m-%d')

# Найти *.log старше N дней и упаковать в архив
find "$LOG_DIR" -type f -regextype posix-extended -regex ".*/[a-zA-Z0-9_-]+\.log$" \
-mtime +"$DAYS_OLD" -print0 | \
tar --null -czf "$BACKUP_DIR/${DATE}_logs.tar.gz" --files-from -

# Проверка успешности и удаление исходников
if [[ $? -eq 0 ]]; then
echo "✅ Архив создан: $BACKUP_DIR/${DATE}_logs.tar.gz"
# Удаляем старые логи
find "$LOG_DIR" -type f -regextype posix-extended -regex ".*/[a-zA-Z0-9_-]+\.log$" \
-mtime +"$DAYS_OLD" -delete
echo "🗑 Оригиналы удалены."
else
echo "❌ Ошибка при создании архива!"
exit 1
fi


➡️ Как это работает:
💠find … -regextype posix-extended -regex ".*/[a-zA-Z0-9_-]+\.log$"
Использует регулярное выражение, чтобы найти все файлы с именами, состоящими из букв, цифр, подчёркиваний или дефисов, и оканчивающиеся на .log.
💠Опция -mtime +7 выбирает файлы старше 7 дней.
💠tar --null --files-from - позволяет безопасно работать с именами, содержащими пробелы.
💠При успешном создании архива исходные файлы удаляются командой -delete в find.

▶️Добавьте этот скрипт в cron, чтобы он выполнялся автоматически, например, каждый день в 2:00.

0 2 * * * /usr/local/bin/archive_logs.sh >> /var/log/archive_logs_cron.log 2>&1


🖼️ Ссылка на источник

🔨 bash_help
  • 👍 12
  • 🔥 6
  • ✍ 5
More from @bash_help
  1. Oct 18, 2026⚙️ Drop ✔️Инструмент для Linux, который позволяет создавать изолированные среды (песочницы…
  2. Oct 18, 2026АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного об…
  3. Oct 15, 2026⚙️ IxeRam ✔️Высокопроизводительный терминал-ориентированный сканер памяти и отладчик для L…
  4. Oct 15, 2026👩‍💻 Всем программистам посвящается! Вот 14 авторских обучающих IT каналов по самым востр…
  5. Oct 14, 2026⚙️ bash-agent ✔️Минималистичная среда выполнения для AI-агента, которая написана на чистом…
  6. Oct 11, 2026⚙️ PortPal ✔️Нативный десктопный монитор портов, который помогает быстро понять, какие про…
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 →