Ich mache es in solchen Fällen, wenn man einen schnellen Zugriff auf den gesicherten Inhalt benötigt - inkrementelle Sicherung rsync
mit --link-dest=
Option.
Es ist ziemlich schnell und hat keine Auswirkungen auf vorherige Sicherungskopien, bei denen Sie beliebig viele Sicherungskopien erstellen können. Backups beanspruchen nicht viel Speicherplatz, da Sicherungskopien feste Links zu vorhandenen Dateien sind. In diesem Fall ist der Zugriff auf das Backup sofort möglich, und die eigentliche Dateiübertragung dauert selbst bei einer großen Anzahl von Dateien rsync
nur Sekunden, da nur neue Dateien kopiert wurden.
#!/bin/sh srcDir='/importunt/data' # Use full path bkpDir='/backups' # Use full path cd "$" previousDir="$(ls -td -- */ | head -n 1 | awk -F'/' '')" # Get most newest directory currentDir="$(date '+%Y-%m-%dT%H;%M;%S')" [ -n "$" ] && { rsync_opts="-aPvz --safe-links --link-dest=$/$ --exclude=*.mp3" } || { rsync_opts="-aPvz --safe-links --exclude=*.mp3" } mkdir -m 770 "$" rsync $ "$" "$"/"$"
Grundsätzlich erstellen solche Lösungen einen exakten Schnappschuss, sodass die Wiederherstellung von Dateien relativ einfach ist.
Seien Sie nicht beängstigend, wenn Sie du
on /backups
directory verwenden, wenn bei jedem Update eine zunehmende Größe angezeigt wird. Wenn Sie dies tun, werden df
Sie feststellen, dass der tatsächliche Speicherplatz nicht reduziert wird. Auf diese Weise zählten harte Links unter Linux und FreeBSD, also keine Sorge. Um sicher zu gehen, dass ich nicht gelogen habe, können Sie den Inode einer Datei in der inkrementellen Sicherung mit überprüfen ls -i file
. Sie werden feststellen, dass die gleiche Datei in allen Verzeichnissen den gleichen Inode aufweist. Dies bedeutet rsync
, dass nur Dateinamen mit festen Links kopiert werden, die jedoch alle auf denselben Inhalt verweisen.
Ein weiterer Vorteil dieser Methode ist, dass Sie älteste Backup-Verzeichnisse in beliebiger Reihenfolge löschen können - neueste, mittlere oder älteste.
Das obige Skript ist ein vereinfachtes Beispiel. Wenn Inhalte in der inkrementellen Sicherung bearbeitet werden sollen, sollten Sie den Mechanismus nicht verwenden ls -t
, um das neueste vorherige Verzeichnis in der Sicherung zu ermitteln, sondern $
in einer Datei speichern und $
bei einem nachfolgenden Aufruf wiederherstellen .
Da rsync
die Übertragung von Übertragungen unterstützt wird ssh
, können Sie die inkrementelle Sicherung mit derselben Effizienz auf die entfernte Maschine übertragen. Die einzigen Änderungen werden synchronisiert.