Borg: Archive für "beschneiden" markieren?

Erstellt am 6. Apr. 2016  ·  5Kommentare  ·  Quelle: borgbackup/borg

Derzeit kann borg prune die zu bereinigenden Archive nur durch ein gemeinsames Präfix einschränken. Dies funktioniert für Namensschemata, bei denen der "bereinigende" Teil von Archivnamen im Vordergrund steht, zB system-<hostname>-<date> und userdata-<hostname>-<date> , funktioniert aber nicht wirklich für alles andere.

Das Hinzufügen von Tags, dh einer Liste beliebiger Strings (außer ",", das wäre das Tag-Trennzeichen) würde helfen. "prune" und andere Befehle, die "--prefix" verwenden, würden eine "--tags"-Option erhalten, und nur Archive, die _all_ (oder _beliebige_, diskutieren) Tags aufgelistet haben, wären betroffen (und sie sollten aus diesem Grund unveränderlich sein).


EDIT: Anderer Ansatz vielleicht, keine zusätzlichen Metadatenfelder, rückwärts anwendbar .

Die Namen sind schon da. Wir könnten einfach etwas hinzufügen wie --tags some,tags (hier immer , als Trennzeichen verwenden?) und --tag-delim - (welches Trennzeichen als Standard?).

tags = set(args.tags.split(args.tag_delim))
for archive in ...:
  if set(archive.name.split(args.tag_delim)) <= tags:
    ...  # prune
enhancement

Hilfreichster Kommentar

Ich möchte diese Funktionsanforderung für Tags/Aliasnamen erhöhen.

Nachdem ich so viel Zeit im Git-Universum verbracht habe, wünsche ich mir, zusätzliche Tags auf bestimmte Borg-Archive anwenden zu können.

Das Einbetten von Tags in den Archivnamen ist derzeit möglich, aber es ist ziemlich widerspenstig, wenn Sie mehrere Tags für ein Archiv verwenden möchten. Ich verwende beispielsweise bereits den Archivnamen, um Hostname, Zeitstempel und ein oder zwei andere Felder einzubetten. Ich möchte auch zusätzliche Tags wie "@latest" und "@release-1" hinzufügen. Das wird schnell unordentlich. Schlimmer noch, ich möchte manchmal ein Tag wie @latest aus einem Archiv zum anderen bewegen.

Wenn Sie borg nur zum Sichern von Dateien verwenden (zugegeben, seine ursprüngliche Mission), werden Tags wahrscheinlich nicht viel benötigt. Aber wenn Sie, wie ich, die Deduplizierung von Borg in anderen Situationen als sehr nützlich empfunden haben, wie zum Beispiel beim Archivieren sehr großer Dateien, die in einer Datenanalyse-Pipeline verwendet werden :-) dann wird die Möglichkeit, einem vorhandenen Archiv mehrere Tags zuzuweisen, wirklich wichtig.

Derzeit besteht meine Problemumgehung darin, das Originalarchiv mit dem von mir entwickelten Namensschema zu erstellen und dann sofort mehrere zusätzliche Archive mit Namen zu erstellen, die mit "@" beginnen -- @beta2 , usw. Jedes dieser zusätzlichen Archive benötigt ein paar Minuten zum Scannen/Erstellen und fügt dem Repository nur ein paar hundert Bytes hinzu, da der Inhalt mit dem Originalarchiv vollständig identisch ist. (Nun, solange sich die Dateien in diesen paar Minuten nicht geändert haben.)

Es wäre wirklich schön, diese Verlangsamung durch Hinzufügen von Tag-Metadaten zu beseitigen.

Ich stelle mir die Benutzeroberfläche etwa so vor:

  • Erstellen Sie ein neues Tag und verweisen Sie es auf ein vorhandenes Archiv:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • Listen Sie alle Tags und die Archive auf, auf die sie verweisen
    borg tag --list [repo]

  • Das Löschen von Tags könnte den vorhandenen borg delete Befehl wiederverwenden oder auch eine Befehlsoption sein:
    borg tag -d [repo] [tagname]

Danke, dass Sie dies bedenken!

Alle 5 Kommentare

Das Mischen von Namen und Tags fühlt sich unsauber an. Tags können separate Archivmetadaten sein.

Guter Punkt, aber ich bin mir nicht sicher, ob das hier nicht in Ordnung ist (als Designentscheidung). #866 ließ mich denken "Hm, wofür _ist_ der Archivname wirklich?". Das "Recyclen" zum Taggen ist keine wirklich saubere Sache, aber es scheint mir ziemlich praktisch (wenn es sich um 100% explizites Opt-In handelt). In gewisser Weise wäre "Tags" nur eine andere Sichtweise auf das "Name"-Feld.

Ich möchte diese Funktionsanforderung für Tags/Aliasnamen erhöhen.

Nachdem ich so viel Zeit im Git-Universum verbracht habe, wünsche ich mir, zusätzliche Tags auf bestimmte Borg-Archive anwenden zu können.

Das Einbetten von Tags in den Archivnamen ist derzeit möglich, aber es ist ziemlich widerspenstig, wenn Sie mehrere Tags für ein Archiv verwenden möchten. Ich verwende beispielsweise bereits den Archivnamen, um Hostname, Zeitstempel und ein oder zwei andere Felder einzubetten. Ich möchte auch zusätzliche Tags wie "@latest" und "@release-1" hinzufügen. Das wird schnell unordentlich. Schlimmer noch, ich möchte manchmal ein Tag wie @latest aus einem Archiv zum anderen bewegen.

Wenn Sie borg nur zum Sichern von Dateien verwenden (zugegeben, seine ursprüngliche Mission), werden Tags wahrscheinlich nicht viel benötigt. Aber wenn Sie, wie ich, die Deduplizierung von Borg in anderen Situationen als sehr nützlich empfunden haben, wie zum Beispiel beim Archivieren sehr großer Dateien, die in einer Datenanalyse-Pipeline verwendet werden :-) dann wird die Möglichkeit, einem vorhandenen Archiv mehrere Tags zuzuweisen, wirklich wichtig.

Derzeit besteht meine Problemumgehung darin, das Originalarchiv mit dem von mir entwickelten Namensschema zu erstellen und dann sofort mehrere zusätzliche Archive mit Namen zu erstellen, die mit "@" beginnen -- @beta2 , usw. Jedes dieser zusätzlichen Archive benötigt ein paar Minuten zum Scannen/Erstellen und fügt dem Repository nur ein paar hundert Bytes hinzu, da der Inhalt mit dem Originalarchiv vollständig identisch ist. (Nun, solange sich die Dateien in diesen paar Minuten nicht geändert haben.)

Es wäre wirklich schön, diese Verlangsamung durch Hinzufügen von Tag-Metadaten zu beseitigen.

Ich stelle mir die Benutzeroberfläche etwa so vor:

  • Erstellen Sie ein neues Tag und verweisen Sie es auf ein vorhandenes Archiv:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • Listen Sie alle Tags und die Archive auf, auf die sie verweisen
    borg tag --list [repo]

  • Das Löschen von Tags könnte den vorhandenen borg delete Befehl wiederverwenden oder auch eine Befehlsoption sein:
    borg tag -d [repo] [tagname]

Danke, dass Sie dies bedenken!

Habe erst vor kurzem angefangen, Borg auszuprobieren, wollte aber der Tagging-Idee +1 geben. Ich sehe einen für Backups relevanten Anwendungsfall, bei dem Tags verwendet werden, um zu definieren, auf welchen von mehreren Cloud-Diensten ein Archiv gesichert wird. Ich stelle mir (basierend auf anderen Diskussionen) vor, dass das Cloud-Backup höchstwahrscheinlich über ein separates Tool erfolgen würde, das die Tags aufgreift und beispielsweise das Erstellen einer hochzuladenden *.tgz-Datei übernimmt. (Sie könnten sogar die Backup-Häufigkeit als separates erkennbares Tag hinzufügen, aber so etwas würde eher in den Bereich des Backup-Tools als in die Borg selbst fallen.)

Eine mögliche Tag-Implementierung finden Sie in Ausgabe 2300. Derzeit ähnelt es eher git tag als Gmail-Labels. Mit anderen Worten, für ein Archiv können zusätzliche Aliase vorhanden sein, die jedoch eindeutig sein müssen. Es ist vielleicht nicht schwer, diese Idee mit dem, was hier besprochen wird, zu verschmelzen – Labels, die auf mehrere Archive angewendet werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen