TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #469 1.1K
Автоматическая очистка старых бэкапов по количеству копий

▪️ Исходные условия

Все бэкапы лежат в одном каталоге;
Имена содержат дату или время (важно для сортировки);
Нужно оставить, например, 7 последних копий.

🛠 Простой, но надежный скрипт


#!/bin/bash

BACKUP_DIR="/backups"
KEEP=7

cd "$BACKUP_DIR" || exit 1

ls -1t | tail -n +$((KEEP + 1)) | while read -r old_backup; do
echo "Удаляю старый бэкап: $old_backup"
rm -rf -- "$old_backup"
done


ls -1t - сортирует файлы по времени изменения (новые сверху)
tail -n +$((KEEP + 1)) - выбирает всё после N первых
rm -rf -- - безопасно удаляет, даже если имя начинается с -


▪️ Полезные улучшения

Проверка без удаления:


ls -1t | tail -n +$((KEEP + 1))


Фильтрация только нужных бэкапов:


ls -1t backup-* | tail -n +$((KEEP + 1))


Логирование:


rm -rf -- "$old_backup" >> /var/log/backup-cleanup.log 2>&1


BashTex 📱 #bash #utils
  • 👍 6
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 →