Хелоу, мая диа френдз! Я повидал дохуя Bash-скриптов по зачистке старых бэкапов: какие-то работают заебись, какие-то создают лишь видимость.

Заебись, когда бэкапы у тебя лежат на той же машине, где ты их делаешь.

Запускаешь по крону команду rm в паре с find и зачищаешь ненужное говно, которое старше определённого времени.

А чо делать, когда бэкапы «правильно» заливаются в облако S3 по протоколу Swift?

Там find с rm уже не прокатит. Можно, конечно, изгаляться, но я в рот ебал изобретать очередной велосипед.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Для этих целей отлично подходит rclone, кто бы, блядь, мог подумать.

Работает так:

/usr/bin/rclone --config ~/.config/rclone/rclone.conf \
--log-file /var/log/rclone-trasher.log \
-v delete selectel:backups/1c/ --min-age 3d --rmdirs

Показываем, где лежит конфиг. Конфиг представляет нечто такое:

[selectel]
type = swift
env_auth = false
user = bashdays
key = fuckyou
auth = https://auth.selcdn.ru/
endpoint_type = internal

Пишем непотребства в лог-файл, чтобы потом посмотреть, что там в кроне навыполнялось.

Указываем, где чистим бэкапы, задаём, сколько бэкапов нам оставить. В примере я оставляю за три последних дня. Бэкапы у меня в каталогах по датам, добавляю ключик rmdirs.

Роман Шубин
Роман Шубин
CEO & CTO, Главред в «Цифровой улей»
Задать вопрос
Вешаем на крон и идём дальше работать пинать хуи.

По-моему, отличное решение, и даже думать не пришлось.

Пользуйтесь на здоровье!