Jak zmusić GitLab do usuwania starych kopii zapasowych?

12

Używam zadania prowizji do tworzenia kopii zapasowych dla GitLab 6.8.2.

gitlab-rake gitlab:backup:create

W /etc/gitlab/gitlab.rbdodałem następujący wiersz:

gitlab_rails['backup_keep_time'] = 60

Ma to przycinać kopie zapasowe starsze niż 60 sekund. Oczekiwałem, że drugie uruchomienie gitlab:backup:createusunie pierwszą kopię zapasową, jeśli minie 60 sekund. Chociaż ostatni wiersz na wyjściu to

Usuwanie starych kopii zapasowych ... pomijanie

Jak skonfigurować GitLab, aby faktycznie usuwał stare kopie zapasowe?

Jan Deinhard
źródło
czy możesz podać ls -lsw katalogu kopie zapasowe, a także dane wyjściowe datepolecenia
Mike
Być może zapomniałeś o gitlab-ctl reconfigure && gitlab-ctl restartinstalacji?
bossi

Odpowiedzi:

15

Opcją, którą chcesz, jest gitlab_rails['backup_keep_time']. musiałem

gitlab-ctl reconfigure

po ustawieniu, aby zadziałało. Pamiętaj, że będzie to miało wpływ tylko na lokalne kopie zapasowe, a nie Amazon-AWS S3, jeśli go używasz.

Wystąpił problem z ich ignorowaniem , ale nie jestem pewien, na jakie wersje to wpływa. Wersja 6 jest dość stara. Jeśli korzystasz z omnibusa, warto uaktualnić.

Tad M.
źródło
1
+1 za wzmiankę o (najprawdopodobniej) rozwiązaniu ( gitlab-ctl reconfigure)
bossi
1
Warto wspomnieć, że po aktualizacji gitlab.rbi uruchomieniu gitlab-ctl reconfiguretworzenia nowej kopii zapasowej lub po uruchomieniu kolejnej kopii zapasowej wygasłe kopie zapasowe zostaną usunięte.
Mark Carpenter Jr
6

Być może chcesz obrócić przestarzałe pliki w pilocie lub backup_upload_connectionfolderze. Gitlab nie jest w stanie usunąć przestarzałych kopii zapasowych z tej lub innych zdalnych lokalizacji. backup_keep_timeJest tylko dla jej wewnętrzny backup_path, który jest domyślnie /var/opt/gitlab/backups.

Planuję uruchomić zadanie cron osobno, które usuwa wszystkie oprócz 10 najnowszych plików w moim zdalnym folderze kopii zapasowej zamontowanym w systemie plików NFS.

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

Zobacz to żądanie scalenia: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1453

I ta różnica: 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
źródło