Как заставить GitLab удалять старые резервные копии?

12

Я использую задачу rake для создания резервных копий для GitLab 6.8.2.

gitlab-rake gitlab:backup:create

В /etc/gitlab/gitlab.rbя добавил следующую строку:

gitlab_rails['backup_keep_time'] = 60

Предполагается, что для удаления резервных копий старше 60 секунд. Я ожидал, что второй прогон gitlab:backup:createудалит первую резервную копию, если прошло 60 секунд. Хотя последняя строка в выводе

Удаление старых резервных копий ... пропуск

Как настроить GitLab для фактического удаления старых резервных копий?

Ян Дейнхард
источник
Можете ли вы предоставить ls -lsв директории резервные копии, а также вывод dateкоманды
Майк
Вы возможно забыли gitlab-ctl reconfigure && gitlab-ctl restartсвою установку?
босси

Ответы:

14

Опция, которую вы хотите, это gitlab_rails['backup_keep_time']. Мне пришлось

gitlab-ctl reconfigure

после установки, чтобы это имело какой-либо эффект. Обратите внимание, что это повлияет только на локальное резервное копирование, но не на Amazon-AWS S3, если вы его используете.

Была проблема с их игнорированием , но я не уверен, на какие версии это влияет. Версия 6 довольно старая. Если вы на омнибусе, возможно, стоит обновить.

Тад М.
источник
1
+1 за упоминание того, что (скорее всего) было решением ( gitlab-ctl reconfigure)
bossi
1
Стоит упомянуть, что после обновления gitlab.rbи запуска gitlab-ctl reconfigureсоздания новой резервной копии или при запуске следующей резервной копии резервные копии с истекшим сроком будут удалены.
Марк Карпентер-младший
6

Возможно, вы смотрите на поворот устаревших файлов на пульте или в backup_upload_connectionпапке. Gitlab не может удалить устаревшие резервные копии из этого или любых других удаленных мест. Это backup_keep_timeтолько для его внутреннего, backup_pathкоторый по умолчанию /var/opt/gitlab/backups.

Я планирую запустить задание cron отдельно, которое удалит все, кроме 10 самых новых файлов в моей удаленной, смонтированной по NFS, резервной папке.

ls -dt */ | tail -n +11 | xargs rm -rf

Смотрите этот запрос на слияние: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1453

И этот diff: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5567/diffs

Note that the `backup_keep_time` configuration option only manages local
files. GitLab does not automatically prune old files stored in a third-party
object storage (e.g. AWS S3) because the user may not have permission to list
and delete files. We recommend that you configure the appropriate retention
policy for your object storage. For example, you can configure [the S3 backup
policy here as described here](http://stackoverflow.com/questions/37553070/gitlab-omnibus-delete-backup-from-amazon-s3).
instantchow
источник