next up previous contents
Nächste Seite: llt Aufwärts: Komponenten / Programme Vorherige Seite: storeBackupConvertBackup.pl   Inhalt


linkToDirs.pl

Erzeugt eine deduplizierte Kopie von Dateien in definierten Verzeichnisse an eine andere Stelle. Verwendet so viele Hardlinks wie möglich, um Speicherplatz zu sparen.

linkToDirs.pl ist ein allgemein verwendbares Tool. Es ist aber besonders hilfreich, wenn Du mit storeBackup erzeugte Backups auf ein anderes Dateisystem kopieren willst.

Anmerkung: Während viele Kopiertools genau zwei primäre Parameter haben (Ziel und Quelle), hat linkToDirs.pl drei:

Die Stelle zum Referenzieren ist die Lokation, an der nach vorhandenem Inhalt gesucht wird, mit dem verhardlinkt werden kann (siehe Option --linkWith).

Die Verwendung der Option --linkWith ist nicht zwingend. Wenn Du sie verwendest, kannst Du optional mehrere Verzeichnisse zum Referenzieren über Hardlinks angeben (die Option --linkWith kann wiederholt angewendet werden).

Dateien mit demselben Inhalt wie dem in den Referenzverzeichnissen (diese müssen auf demselben Dateisystem wie das Zielverzeichnis liegen) werden verhardlinkt. Hardlinks in den kopierten Dateien bleiben erhalten oder werden wieder neu erzeugt: linkeToDirs.pl setzt bei identischen Dateien immer Hardlinks, außer in den Dateien innerhalb der Referenzverzeichnisse, die mittels --linkWith angegeben wurden. Diese werden nicht verändert. Falls sich dort also zwei identische Dateien befinden, die nicht verhardlinkt sind, bleiben sie so (ohne Hardlink) bestehen. linkToDirs.pl unterstützt das Hardlinken von symbolischen Links.

(Wenn keine identischen Dateien existieren, werden natürlich nur Kopien angelegt.)

Hardlinks folgen bei Linux diesen Regeln:

Wenn es nicht möglich ist, einen Hardlink auf die referenzierte Datei zu erzeugen (z.B. wegen der genannten Limitationen von Hardlinks), kopiert linkToDirs.pl die betreffende Datei auf dem Ziel-Dateisystem neu und verlinkt danach gegen diese. Auf diese Weise kann linkToDirs.pl verwendet werden, einen deduplizierten Status aus dem Quellverzeichnis auf einem Zielverzeichnis zu erhalten (auch wenn das Ziel-Dateisystem weniger Hardlinks pro Datei unterstützt als das Quell-Dateisystem). Hardlinks können aber nicht über Dateisystemgrenzen angelegt werden.

linkToDirs.pl ist ein Tool zur allgemeinen Verwendung. Nichtsdestotrotz hat es einen besonderen Nutzen für storeBackup. Wie Du weißt, eliminiert storeBackup Platzverschwendung im Backup durch Deduplikation über Hardlinks. Aber Hardlinks können nicht über Dateisystem Grenzen angelegt werden.

Wenn Du ein existierendes, mit storeBackup erzeugtes Backup auf eine neue Platte (ein neues Dateisystem) kopieren willst, ermöglicht es linkToDirs.pl Dir, alle Vorteile des Platzsparens von storeBackup zu erhalten.

            linkToDirs.pl [--linkWith copyBackupDir] [--linkWith ...]
                          --targetDir targetForSourceDir
                          [--progressReport number[,timeframe]] 
                           [--printDepth] [--dontLinkSymlinks]
                          [--ignoreErrors] [--saveRAM] [-T tmpdir]
                          [--createSparseFiles [--blockSize]]
                          sourceDir ...

--help / -h
Gibt eine Hilfe aus
--linkWith / -w
Das Referenzverzeichnis. Die Dateien hier werden beim Hardlinken berücksichtigt. Diese Option kann wiederholt verwendet werden. (Wie zu erwarten werden die Verzeichnisse rekursiv durchlaufen.)
--targetDir / -t
Das Zielverzeichnis. Die bei sourceDir angegebenen Verzeichnisse werden hierher kopiert.
--dontLinkSymlinks
Symbolische Links werden nicht per Hardlinks verbunden. Standard ist, identische symbolische Links per Hardlink zu verbinden.
--progressReport / -P / progressReport
Schreibe den Fortschritt nach der hier angegebenen Anzahl von Dateien in die Logdatei. Wenn Du eine Meldung spätestens nach einem bestimmten Zeitraum haben willst, kann Du diese durch ein Komma separiert anfügen, z.B.:
-P 1000,1m10s     auf der Kommandozeile, oder
progressReport = 1000,1m10s     in der Konfigurationsdatei.
Es dürfen keine Leerstellen im Parameter zu der Option enthalten sein. Die Syntax für den Zeitraum ist dieselbe wie bei den keep$*$ Optionen.
sourceDir
Das Quellverzeichnis. Dateien (oder existierende storeBackup-Backups) aus diesem Verzeichnis werden nach targetDir kopiert. sourceDir kann wiederholt mit unterschiedlichen Verzeichnissen angegeben werden. Es können auch Wildcards verwendet werden. Die Kopierfunktionalität geht rekursiv in alle Unterverzeichnisse der angegebenen sourceDir.
--ignoreErrors
Das Programm stoppt nicht, wenn Fehler beim Kopieren / Linken auftreten.
--saveRAM / saveRAM
Verwende diese Option, wenn storeBackup.pl auf einem System mit sehr wenig Hauptspeicher verwendet wird. Du wirst dann in tmpDir einige dbm-Dateien sehen. Durch Verwendung dieser Option wird storeBackup.pl ein bisschen langsamer, daher empfiehlt sich diese Option nur dann, wenn ohne sie Probleme auftreten. Auf aktuellen Computern sollte die Verwendung dieser Option nur notwendig sein, wenn viele Millionen Dateien zu kopieren sind.
--tmpdir / -T /tmpdir
Verzeichnis für temporäre Dateien, der Wert wird von der Umgebungsvariablen $TMPDIR übernommen. Falls diese nicht gesetzt ist, wird /tmp als Standardwert genommen.
--createSparseFiles / -s
Unterschiede in der Anzahl der belegten Blöcke, der Blockgröße und der Dateigröße werden dazu verwendet, um mögliche Sparse Dateien zu erkennen. Wenn diese Option gesetzt ist, wird im Fall einer möglichen Sparse Datei mit dem externen Program cp kopiert. Auf Linux und vielen anderen Systemen ist gnucp installiert, welches Sparse Dateien unterstützt. Diese Option könnte auf anderen Betriebssystemen je nach verwendetem cp nicht funktionieren.
--blockSize
Die Blockgröße, die verwendet wird, um eine Sparse Datei zu identifizieren. Der Defaultwert ist 512.


next up previous contents
Nächste Seite: llt Aufwärts: Komponenten / Programme Vorherige Seite: storeBackupConvertBackup.pl   Inhalt
Heinz-Josef Claes 2014-04-20