Чистка бэкапов

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Чистка бэкапов

Непрочитанное сообщение bagas » 2013-10-07 15:11:48

Имеется бэкапы, название директории дата создания ее.
Места не много так что нужно реализовать чистку бэкапов.
Чистка по схеме 14 дневные, 2 30 дневных и 1 50 дневный.
насчет 14 дневных это понятно финдом можно пройтись что старше 14 дней удаляем, а вот как мне реализовать 2 и 3 параметр. То-етсь оставлять 30 и 50 дневные бэкапы.
Директорий должно всегда быть максимум 17 шт.
Непойму как мне схему составить скрипта.
Вот так выглядяд данные бэкапы, сейчас я просто удаляю что старше 20 дней.

Код: Выделить всё

drwxr-xr-x  2 bagas  wheel  1024 Sep  1 04:55 01-09-2013
drwxr-xr-x  2 bagas  wheel  1024 Oct  1 02:20 01-10-2013
drwxr-xr-x  2 bagas  wheel  1024 Sep  2 04:59 02-09-2013
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

rayder
лейтенант
Сообщения: 661
Зарегистрирован: 2008-12-18 16:29:43
Откуда: Ukraine/Kiev
Контактная информация:

Re: Чистка бэкапов

Непрочитанное сообщение rayder » 2013-10-08 16:59:45

можно получить список папок и в цикле пробежаться с помощью

Код: Выделить всё

cho $(($(($(date -d "2010-06-01" "+%s") - $(date -d "2010-05-15" "+%s"))) / 86400))
только вот вопрос: сегодня этот бекап 30-ти дневный, а завтра он уже 31-дневный и его нужно будет удалить. а вчерашнего 29-го уже нет, т.к. он не подходит под условия. Условия как-то противоречат друг другу получается
Человеку свойственно ошибаться, но для нечеловеческих ляпов нужен компьютер.

snorlov
подполковник
Сообщения: 3917
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Чистка бэкапов

Непрочитанное сообщение snorlov » 2013-10-08 17:12:49

А как вы поймете, что это у вас 30-ти дневный архив? Я предлагаю, что надо исходить из того, чтобы беречь архивы, сформированные на 1-ое число месяца...

Аватара пользователя
Volodymyr
лейтенант
Сообщения: 614
Зарегистрирован: 2008-06-17 16:04:56
Откуда: Ukraine, Lviv
Контактная информация:

Re: Чистка бэкапов

Непрочитанное сообщение Volodymyr » 2013-12-18 13:06:25

У себя файлы бекапов чищу так:

Код: Выделить всё

#!/bin/sh
backup_dir="/backup"
backup_dir_sql="/backup/sql"
life_time_tar=14d
life_time_hdd=3d
life_time_sql=21d


find $backup_dir -name '*.tar' -mtime +$life_time_tar -delete
find $backup_dir -name '*.hdd' -mtime +$life_time_hdd -delete
find $backup_dir_sql -name '*.sql.gz' -mtime +$life_time_sql -delete