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

Когда бэкапы копятся месяцами, место на диске неумолимо заканчивается. Сегодня рассмотрим процесс автоматизации процесса очистки старых резервных копий, чтобы всё важное сохранялось, а лишнее удалялось.

❓ Какую стратегию выбрать?

FIFO (First In, First Out) - удаление самых старых файлов
GFS (Grandfather-Father-Son) - оставляем дневные, недельные, месячные
По размеру диска - чистим, если занято > 80%


Я использую FIFO - удаление самых старых файлов, какую выбрать Вам - зависит от вас и конкретной задачи.

▪️ Удаляем файлы старше 7 дней в /backups/


find /backups/ -type f -name "*.tar.gz" -mtime +7 -exec rm {} \;


▪️ Удаляем, если свободного места < 20%


if [[ $(df /backups --output=pcent | tail -1 | tr -d '% ') -gt 80 ]]; then
find /backups/ -type f -name "*.tar.gz" -mtime +3 -exec rm {} \;
fi


▪️ Оставляем 3 последние копии


ls -t /backups/*.tar.gz | tail -n +4 | xargs rm -f


▪️ Добавим выполнение скрипта раз в день:


0 2 * * * /usr/local/bin/cleanup_backups.sh


Не забудьте перед этим сделать cleanup_backups.sh исполняемым:


chmod +x cleanup_backups.sh


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