
У меня есть ежедневные резервные копии баз данных, которые scp'ются в каталог на локальной машине Linux для нескольких баз данных. Формат именования - [dbname].backup; нет временной метки, и в настоящее время последняя резервная копия перезаписывает предыдущую.
Руководство хочет сохранить старые версии файлов с отметкой даты в конце и применить следующую политику хранения:
- все файлы будут храниться в течение 7 дней
- первая резервная копия месяца для каждой базы данных будет храниться в течение 12 месяцев.
- первая резервная копия за каждый год будет храниться неограниченное время
Я ломаю голову над тем, как написать этот скрипт, поэтому я надеялся, что кто-то уже написал что-то подобное или, может быть, есть инструмент, о котором я не знаю, который может справиться с такими вещами.
Кто-нибудь знает такой скрипт или инструмент?
решение1
Мы часто так делаем в моей компании.
Основное, что вы, вероятно, будете использовать, это «найти» (man find). Например:
найти /home -type f -ctime +14 -exec rm -f {} \;
удалит все файлы из /home и ниже, которые были созданы старше 14 дней. Вы можете дополнительно указать параметры для поиска, чтобы сосредоточиться на файлах, на которые вы нацелились.
Дайте мне знать, если вам понадобится дополнительная информация или помощь в использовании find, но он сделает все, что вам нужно.