Wie lasse ich GitLab alte Backups löschen?

12

Ich verwende die Rake-Task, um Backups für GitLab 6.8.2 zu erstellen.

gitlab-rake gitlab:backup:create

In habe /etc/gitlab/gitlab.rbich folgende Zeile hinzugefügt:

gitlab_rails['backup_keep_time'] = 60

Dies soll Backups beschneiden, die älter als 60 Sekunden sind. Meine Erwartung war, dass ein zweiter Durchlauf gitlab:backup:createdas erste Backup entfernen würde, wenn 60 Sekunden vergangen sind. Obwohl die letzte Zeile in der Ausgabe ist

Alte Backups löschen ... überspringen

Wie konfiguriere ich GitLab so, dass alte Backups tatsächlich entfernt werden?

Jan Deinhard
quelle
Können Sie eine ls -lsim Verzeichnis mit den Backups und auch der Ausgabe des dateBefehls bereitstellen
Mike
Sie haben möglicherweise gitlab-ctl reconfigure && gitlab-ctl restartIhre Installation vergessen ?
Bossi

Antworten:

13

Die gewünschte Option ist gitlab_rails['backup_keep_time']. Ich musste

gitlab-ctl reconfigure

nachdem Sie es so eingestellt haben, dass es einen Effekt hat. Beachten Sie, dass dies nur lokale Sicherungen betrifft, nicht Amazon-AWS S3, wenn Sie dies verwenden.

Es gab ein Problem, bei dem sie ignoriert wurden , aber ich bin mir nicht sicher, welche Versionen davon betroffen sind. Version 6 ist ziemlich alt. Wenn Sie im Omnibus sind, ist es möglicherweise ein Upgrade wert.

Tad M.
quelle
1
+1 für die Erwähnung, was (höchstwahrscheinlich) die Lösung war ( gitlab-ctl reconfigure)
Bossi
1
Erwähnenswert ist, dass nach dem Aktualisieren gitlab.rbund Ausführen der gitlab-ctl reconfigureErstellung eines neuen Backups oder beim Ausführen des nächsten Backups abgelaufene Backups entfernt werden.
Mark Carpenter Jr.
6

Vielleicht möchten Sie veraltete Dateien in der Fernbedienung oder im backup_upload_connectionOrdner herausdrehen. Gitlab ist nicht in der Lage, veraltete Backups von diesem oder einem anderen Remote- Speicherort zu entfernen . Das backup_keep_timeist nur für seine interne, backup_pathdie standardmäßig ist /var/opt/gitlab/backups.

Ich plane, einen Cron-Job separat auszuführen, bei dem alle bis auf 10 der neuesten Dateien in meinem Remote-Sicherungsordner mit NFS-Unterstützung gelöscht werden.

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

Siehe diese Zusammenführungsanforderung: https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1453

Und dieser Unterschied: 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
quelle