Was ist für Backups am wichtigsten? Das ist richtig, Reproduzierbarkeit. Machen wir also ein Fahrrad auf dem Knie und auf der Option --link-dest
von rsync . Unser Fahrrad wird weder eine komplizierte git-artige restische Datenstruktur haben, noch eine Reihe von Backends wie Duplicity. Aber wir können seine Arbeit aus dem Gedächtnis wiederherstellen, auch unter Stress.
Mit --link-dest
Option --link-dest
können Sie die vorherige Sicherungsversion angeben, auf der rsync feste Verknüpfungen erstellt, wenn sich die Dateien seit dem letzten Mal nicht geändert haben.
Das heißt, rsync --link-dest=/var/backups/www.1 remote:/var/www /var/backups/www.0
kopiert nur diese Dateien vom Remote-Server in den Ordner /var/backups/www.0 das hat sich geändert, aber für den Rest wird es einen festen Link in /var/backups/www.1 setzen
Jetzt ist der Trick klein: Binden Sie den rsync
Aufruf in Code ein, der Backups um eins zurückschiebt, Speicherplatz für ein neues Backup in /var/backups/www.0
und /var/backups/www.9
die letzte Kopie von /var/backups/www.9
.
Dieser Code benennt /var/backups/www.1
in /var/backups/www.2
und /var/backups/www.0
benennt /var/backups/www.1
.
Es bleibt nur rsync --link-dest=/var/backups/www.1 remote:/var/www /var/backups/www.0
und Optionen nach Belieben hinzuzufügen. Mit der Option --delete
die Dateien in der letzten Kopie --delete
(dies wird von rsync
nicht standardmäßig ausgeführt). Mit der Option -C
die Ordner .svn
, .svn
, patch
Artefakte und einige andere häufig verwendete temporäre .svn
ignoriert.
Alle zusammen:
Außerhalb der Klammern befanden sich Fehlerbehandlung (siehe set -e
) und Benachrichtigungen, und die Anzahl der Kopien kann anpassbar gemacht werden.
Aber es geht!