bup-split - Referenzhandbuch, Optionen, Befehlsbeispiele


NAME

bup-split - Speichern Sie einzelne Dateien in Bup-Backup-Sets

ZUSAMMENFASSUNG

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

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...]

BESCHREIBUNG

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).

MODI

Diese Optionen wählen das primäre Verhalten des Befehls aus, wobei -n die wahrscheinlichste Wahl ist.

-n, --name=name

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.

-t, --tree

Geben Sie die Git-Tree-ID des resultierenden Datensatzes aus.

-c, --commit

Geben Sie die Git-Commit-ID des resultierenden Datensatzes aus.

-b, --blobs

Geben Sie eine Reihe von Git-Blob-IDs aus, die den Blöcken im Datensatz entsprechen. Inkompatibel mit -n, -t und -c.

--noop

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.

--copy

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.

OPTIONEN

-r, --remote=host:path

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.

-d, --date=seconds-since-epoch

Geben Sie das im Commit eingetragene Datum an (Sekunden seit dem 01.01.1970).

-q, --quiet

Fortschrittsmeldungen deaktivieren.

-v, --verbose

Ausführlichkeit erhöhen (kann mehr als einmal verwendet werden).

--git-ids

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.

--keep-boundaries

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.

--bench

Benchmark-Timings in stderr ausgeben.

--max-pack-size=bytes

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.

--max-pack-objects=numobjs

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.

--fanout=numobjs

Wenn Sie sehr große Dateien aufteilen, versuchen Sie, die Anzahl der Elemente in Bäumen auf einen Durchschnitt von numobjs zu beschränken.

--bwlimit=bytes/sec

Ü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.

-#, --compress=#

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)

BEISPIELE

$ 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
1961

SIEHE AUCH

bup-join(1), bup-index(1), bup-save(1), bup-on(1), ssh_config(5)

BUP

Teil der bup(1)-Suite.

AUTOREN

Avery Pennarun .