bup-split - Speichern Sie einzelne Dateien in Bup-Backup-Sets
bup split [-t] [-c] [-n name] COMMON_OPTIONS
bup split -b COMMON_OPTIONS
bup split –copy COMMON_OPTIONS
bup split –noop [-t|-b] COMMON_OPTIONS
[-r host:path] [-v] [-q] [-d seconds-since-epoch] [--bench] [--max-pack-size=bytes] [-#] [--bwlimit=bytes] [--max-pack-objects=n] [--fanout=count] [--keep-boundaries] [--git-ids | filenames...]
bup split verkettet den Inhalt der angegebenen Dateien (oder liest, wenn keine Dateinamen angegeben sind, von stdin), teilt den Inhalt mithilfe eines rollierenden Prüfsummenalgorithmus in Blöcke von etwa 8 KB auf und speichert die Blöcke in einem bup-Repository. Zuvor gespeicherte Chunks werden nicht erneut gespeichert (d. h. sie werden „dedupliziert“).
Aufgrund der Funktionsweise der rollierenden Prüfsumme neigen Chunks dazu, bei Änderungen an einer bestimmten Datei, einschließlich dem Hinzufügen, Löschen und Ändern von Bytes, sehr stabil zu bleiben.
Wenn Sie beispielsweise bup split verwenden, um einen XML-Dump einer Datenbank zu sichern, und sich die XML-Datei von einem Lauf zum nächsten geringfügig ändert, werden fast alle Daten weiterhin dedupliziert und die Größe jedes Backups nach dem ersten ändert sich normalerweise recht klein sein.
Eine andere Technik besteht darin, die Ausgabe der Programme tar(1) oder cpio(1) an Bup Split weiterzuleiten. Wenn sich einzelne Dateien im Tarball geringfügig ändern oder hinzugefügt oder entfernt werden, verarbeitet bup den Rest des Tarballs dennoch effizient. (Beachten Sie jedoch, dass Bup Save normalerweise eine effizientere Methode ist, dies zu erreichen.)
Um die Daten zurückzubekommen, verwenden Sie bup-join(1).
Diese Optionen wählen das primäre Verhalten des Befehls aus, wobei -n die wahrscheinlichste Wahl ist.
Erstellen Sie nach dem Erstellen des Datensatzes einen Git-Zweig mit dem Namen name, damit unter diesem Namen darauf zugegriffen werden kann. Wenn name bereits existiert, wird der neue Datensatz als Nachkomme des alten name betrachtet. (So können Sie kontinuierlich neue Datensätze mit demselben Namen erstellen und später den Verlauf dieses Datensatzes anzeigen, um zu sehen, wie er sich im Laufe der Zeit verändert hat.) Die Originaldaten sind auch als Datei der obersten Ebene mit dem Namen „data“ in verfügbar das VFS, zugänglich über Bup Fuse, Bup FTP usw.
Geben Sie die Git-Tree-ID des resultierenden Datensatzes aus.
Geben Sie die Git-Commit-ID des resultierenden Datensatzes aus.
Geben Sie eine Reihe von Git-Blob-IDs aus, die den Blöcken im Datensatz entsprechen. Inkompatibel mit -n, -t und -c.
Lesen Sie die Daten und teilen Sie sie basierend auf dem rollierenden Prüfsummenalgorithmus „bupsplit“ in Blöcke auf, speichern Sie jedoch nichts im Repo. Kann mit -b oder -t kombiniert werden, um die Git-Blobs oder Baum-IDs für den Datensatz zu berechnen (aber nicht zu speichern). Dies ist vor allem für das Benchmarking und die Validierung des Bupsplit-Algorithmus nützlich. Inkompatibel mit -n und -c.
wie --noop, aber schreibe die Daten auch nach stdout. Dies kann nützlich sein, um die Lese-, Bupsplit- und Schreibgeschwindigkeit für große Datenmengen zu vergleichen. Inkompatibel mit -n, -t, -c und -b.
Speichern Sie den Sicherungssatz auf dem angegebenen Remote-Server. Wenn path weggelassen wird, wird der Standardpfad auf dem Remote-Server verwendet (Sie müssen trotzdem das „:“ einschließen). Die Verbindung zum Remote-Server erfolgt über SSH. Wenn Sie angeben möchten, welcher Port, Benutzer oder privater Schlüssel für die SSH-Verbindung verwendet werden soll, empfehlen wir Ihnen die Verwendung der Datei ~/.ssh/config. Auch wenn das Ziel entfernt ist, ist dennoch ein lokales Bup-Repository erforderlich.
Geben Sie das im Commit eingetragene Datum an (Sekunden seit dem 01.01.1970).
Fortschrittsmeldungen deaktivieren.
Ausführlichkeit erhöhen (kann mehr als einmal verwendet werden).
stdin ist eine Liste von Git-Objekt-IDs anstelle von Rohdaten. bup split liest den Inhalt jedes benannten Git-Objekts (sofern es im bup-Repository vorhanden ist) und teilt es auf. Dies kann nützlich sein, um ein Git-Repository mit großen Binärdateien so zu konvertieren, dass stattdessen Hashsplitting im Bup-Stil verwendet wird. Diese Option ist wahrscheinlich am nützlichsten, wenn sie mit --keep-boundaries kombiniert wird.
Wenn in der Befehlszeile mehrere Dateinamen angegeben werden, werden diese normalerweise miteinander verkettet, als ob der gesamte Inhalt aus einer einzigen Datei stammen würde. Das heißt, die Menge der erzeugten Blobs/Bäume ist identisch mit der Menge, die bei einer einzigen Eingabedatei entstanden wäre. Wenn Sie jedoch --keep-boundaries verwenden, wird jede Datei separat aufgeteilt. Sie erhalten immer noch nur einen einzelnen Baum oder Commit oder eine Reihe von Blobs, aber jeder Blob stammt nur aus einer der Dateien. Das Ende einer der Eingabedateien beendet immer einen Blob.
Benchmark-Timings in stderr ausgeben.
Erstellen Sie niemals Git-Packdateien, die größer als die angegebene Anzahl von Bytes sind. Der Standardwert ist 1 Milliarde Bytes. Normalerweise gibt es keinen Grund, dies zu ändern.
Erstellen Sie niemals Git-Packdateien mit mehr als der angegebenen Anzahl an Objekten. Der Standardwert beträgt 200.000 Objekte. Normalerweise gibt es keinen Grund, dies zu ändern.
Wenn Sie sehr große Dateien aufteilen, versuchen Sie, die Anzahl der Elemente in Bäumen auf einen Durchschnitt von numobjs zu beschränken.
Übertragen Sie nicht mehr als bytes/sec Bytes pro Sekunde an den Server. Dies ist gut, damit Ihre Backups nicht Ihre gesamte Netzwerkbandbreite beanspruchen. Verwenden Sie ein Suffix wie k, M oder G, um Vielfache von 1024, 1024*1024 bzw. 1024*1024*1024 anzugeben.
Stellen Sie die Komprimierungsstufe auf # ein (ein Wert zwischen 0 und 9, wobei 9 die höchste und 0 keine Komprimierung bedeutet). Der Standardwert ist 1 (schnelle, lockere Komprimierung)
$ tar -cf - /etc | bup split -r myserver: -n mybackup-tar
tar: Removing leading /' from member names
Indexing objects: 100% (196/196), done.
$ bup join -r myserver: mybackup-tar | tar -tf - | wc -l
1961bup-join(1), bup-index(1), bup-save(1), bup-on(1), ssh_config(5)
Teil der bup(1)-Suite.
Avery Pennarun