Назад | Перейти на главную страницу

Скрипт для удаления старых бэкапов

У меня много резервных копий, например:

backup-20130528_054504_mysql.tar.gz, 
bill_db_201305290130.BAK.bz2,
etc_20130412.tbz

Это полные резервные копии, которые делаются каждый день.

До сегодняшнего дня у меня была задача cron с такой командной строкой:

/usr/bin/find /media/backups -ctime +7 -delete

Но это была плохая идея.

Один сервер перестал делать новые резервные копии (файловая система была заполнена) более 7 дней назад, а все старые резервные копии были удалены cron.

Возможно, мне понадобится новый сценарий вместо этого "find -ctime", который в любом случае будет хранить некоторые старые резервные копии.

Все мои файлы резервных копий имеют имена {unique_prefix}ГГГГММДД...

Я хочу что-то вроде:

для каждого {unique_prefix}.

Все эти файлы загружаются на мой сервер cron через rsync, ssh и т. Д.

Я не люблю изобретать велосипед, и уверен, что это типичная задача.

Пожалуйста, укажите мне решение.

Сценарий оболочки может обрабатывать резервные копии до определенной степени сложности. У вас также есть инструменты, которые используют tar и rsync для выполнения еще более сложных задач (rsnapshot, например).

Однако похоже, что вам нужен очень мелкозернистый резервное копирование и удержание политика, для обработки которой сценарий оболочки может не подходить, если только он не является излишне сложным и другие упомянутые инструменты не предоставляют.

Вам следует подумать об использовании специального программного обеспечения для этой задачи. Их много, но бакула и Аманда приходить на ум.

Я не согласен с даудом и считаю, что лучше всего использовать простые резервные копии.

какой ты на самом деле нужен не более умный способ удаления вещей (хотя это было бы неплохо, я написал нечто подобное, которое просто сохраняет последние N резервных копий), а надлежащий мониторинг вашей файловой системы, чтобы вы заметили, что она заполняется задолго до это так, и вы можете действовать. Так вы не потеряете свои данные.