Bash удалить старые файлы

Существует много решений в Linux по хранению бэкапов. Есть и готовые решения в виде программ, есть скрипты.
Так уже получилось, что бэкапы складывать в определенную папку задача не сложная (архиватор + cron) но как следить чтобы архивы не плодились? Опять же, есть готовые решения, но я предпочитаю самому управлять процессом. Простой скрип на bash решает проблему удаления старых бэкапов. Например, когда надо, чтобы хранились последние 5 копий, удаляются самые старые файлы бэкапов, а 5 новых остается.
Скрипт не блещет гениальными решениями, более того, я уверен, что это можно было сделать проще, но я как новичок в баше сделал это вот так:

Запускаю этот скрипт в кроне раз в неделю, например, с такими параметрами:

Это значит что самые старые файлы, начинающиеся с etc в папке /var/backup, кроме трёх самых свежих, будут удалены.

find /path/to/files/* -mtime +1 -delete

При этом нюанс
-mtime +1
модифицированные больше 1 дня назад

-mtime 1
модифицированные один день назад (сегодня и позавчера уже не затронет)

вместо -delete можете для начала ничего не писать, он выдаст на экран что найдет, чтобы убедиться что все ок.

Bash скрипт для удаления файлов старше заданного кольчества дней в Linux

На этот раз поговорим о том как удалять файлы старше n-ого количества дней используя для этого простой скрипт написанный на bash

Создадим файл с названием "DelFileNDay.sh" используя для этого утилиту "cat".

DAY=30 — задаем количество дней старше, которых файлы будут удаляться.

DIR="/var/log/test/" — задаем полный путь к директории из которой будут удаляться файлы.

Даем файлу максимальные привелегии с помощью утилиты "chmod".

Если нужно чтобы файлы удалялись автоматически, например раз в день или месяц, то поместите скрипт в директорию "/etc/cron.daily/" или "/etc/cron.monthly/".

На этом все. Комментируем, подписываемся ну и всем пока:)

1" :pagination="pagination" :callback="loadData" :options="paginationOptions">

Оцените статью
Много толка
Добавить комментарий