Страница 1 из 1

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

Добавлено: 2013-10-07 15:11:48
bagas
Имеется бэкапы, название директории дата создания ее.
Места не много так что нужно реализовать чистку бэкапов.
Чистка по схеме 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

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

Добавлено: 2013-10-08 16:59:45
rayder
можно получить список папок и в цикле пробежаться с помощью

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

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

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

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

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

Добавлено: 2013-12-18 13:06:25
Volodymyr
У себя файлы бекапов чищу так:

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

#!/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