TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #466 1.24K
Автоочистка логов по размеру и времени

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

▪️ Логика

логи старше N дней перемещаем в .gz;
логи больше X МБ убираем в архив или удаление;
все работает без logrotate;

🛠 Скрипт


LOG_DIR="/var/log/myapp"
MAX_DAYS=7
MAX_SIZE_MB=100

find "$LOG_DIR" -type f -name "*.log" | while read -r file; do
size_mb=$(du -m "$file" | awk '{print $1}')

# Архивируем старые логи
if [[ $(find "$file" -mtime +$MAX_DAYS) ]]; then
gzip -f "$file"
continue
fi

# Архивируем слишком большие
if (( size_mb > MAX_SIZE_MB )); then
gzip -c "$file" > "${file}.gz"
: > "$file" # обнуляем без удаления
fi
done


▪️ Что здесь важно

find -mtime - контроль по времени
du -m - размер в мегабайтах
: > file - безопасное обнуление без потери inode
gzip -c - архив без удаления исходника

BashTex 📱 #bash #utils
  • 👍 8
More from @bash_tex
  1. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  2. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  3. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  4. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  5. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
  6. Oct 1, 2026flock vs fcntl - почему две блокировки одного файла могут вести себя совершенно по-разному…
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 →