13.06.2014

Rsync: Effektive Backups erstellen

Backups sind sicher das A und O der IT. Backupsoftware ist aber oftmals teuer, aufwendig einzurichten und schwerfällig. Mit rsync gibt es aber eine sehr interessante Alternative. Diese stammt zwar ursprünglich aus der Unixwelt, ist aber auch auf Windows-Systeme portiert worden. rsync sichert Ihre Daten verblüffend einfach, schnell und zuverlässig.

Von: Lars Behrens   Drucken Teilen   Kommentieren  

Lars Behrens, Dipl.-Paed

Lars Behrens ist Geschäftsführer der Firma MaLiWi IT. Staatlich geprüfter Netzwerkadministrator, Microsoft MCP/Linux LCP. Er hat langjährige Erfahrung in der Beratung bei Planung und Einrichtung von IT-Systemen und Netzwerken und dem Support heterogener Systeme (Apple Macintosh, Microsoft Windows, Linux). Universitätsstudium der Pädagogik, mehrere Jahre Tätigkeit im Ausland. Seminar- und Kursleiter, Referent und Fachbuchautor. Weiterhin ist er Herausgeber von dem Online-Fachportal «InformatikPraxis» bei der WEKA Business Media AG.

MaLiWi IT

 zum Portrait

Zu diesem Artikel wurden noch keine Kommentare geschrieben. Wir freuen uns, wenn Sie den ersten Kommentar zu diesem Artikel verfassen.
 
Kommentar schreiben

Bitte Wert angeben!

Bitte Wert angeben!

Bitte Wert angeben! Bitte geben Sie eine gültige E-Mail-Adresse ein!

Bitte Wert angeben!

Bitte Wert angeben!

Bitte Wert angeben!

Bitte alle fett beschrifteten Pflichtfelder ausfüllen.
Zurücksetzen
 
Rsync

Unsere geliebte elektronische Welt ist – diese Tatsache muss man sich eher einige Male öfters als zu wenig bewusst machen – eine Scheinwelt von Bits und Bytes, die durch Diebstahl, Bedienungsfehler, Hardwaredefekte oder schlichte Fehler im angeblich so stabilen (Server-)System unwiderruflich im Nirvana verschwinden können. Wohl dem, der dann mit einem guten Backup vorgesorgt hat. Was aber zeichnet ein solches gutes Backup aus?

Sichern der Daten

Ein Backup ist eine Kopie, ein Duplikat der wichtigsten Daten – und nicht nur dieser. Auch scheinbar unwichtige Daten sollten aufbewahrt werden. Der Gram über den derart belegten Speicherplatz ist eher zu ertragen als die Katastrophe, einmal entrümpelte Daten doch noch benötigt zu haben. Mit der darauffolgenden Gewissheit, dass diese längst gelöscht, entsorgt und die entsprechenden Speicherblöcke auf dem Datenträger bis zur Unkenntlichkeit der alten Daten überschrieben worden sind. Haben Sie vielleicht schon einmal etwas von der Regel gehört, die Ordnung in unseren immer mehr überfrachteten Arbeitsalltag bringen soll, dass nämlich Dinge, die über einen gewissen Zeitraum (man spricht hier gerne von einem Jahr und darüber hinaus) nicht mehr benutzt wurden, getrost weggeworfen werden können? Nun, in der IT-Welt gilt diese Regel nicht. Zum einen aus gesetzlichen Gründen, zum anderen aus der Erkenntnis heraus, dass Dateien schnell gelöscht, aber umso schwerer wiederherzustellen sind, falls dies nicht sogar vollkommen unmöglich ist. Zu guter Letzt sollte man sich vor Augen halten, dass Speicherplatz heutzutage dermassen günstig und leicht verfügbar ist, dass das Freiwerden von Speicherkapazitäten kein Kriterium mehr für das Löschen vermeintlich nicht benötigter Dateien sein sollte.

Mit rsync Daten sicher, schnell und effektiv übertragen

Soweit die kurzen Vorbetrachtungen zum Sichern von Dateien. Wie aber sichern Sie Ihre Daten? Auf dem Arbeitsplatz-PC oder Laptop können Sie CDs oder DVDs brennen oder einen USB-Stick oder eine externe Festplatte zur Sicherung anschliessen. Das Betriebssystem Mac OS X von Apple verfügt mit Timemachine über eine äusserst komfortable und zuverlässige Methode der automatischen Sicherung Ihrer Dateien. Einschliesslich einer etwas spacigen Bedienoberfläche, wenn es an die Wiederherstellung von Dateien geht. Unter Windows und Linux gibt es eine ganze Reihe an Sicherungsprogrammen für Einzelsysteme. Interessant wird aber die Sicherung Ihrer Server. Hier sind überwiegend Spezialisten in Form von proprietärer, zumeist nicht eben billiger und mitunter schwierig einzurichtender Backupprogramme gefragt. Aber es gibt noch eine einfache, sehr effektive und vor allem kostengünstige Möglichkeit der Datensicherung. Mit rsync können Daten nämlich sicher, schnell und somit sehr effektiv übertragen werden, sowohl lokal (etwa auf eine per USB angeschlossene Festplatte) oder zu einem Backupserver im Netzwerk oder sogar ausgelagert im Internet. rsync ist übrigens eine Entwicklung des Teams, welches auch für Samba, eine lizenztechnisch freie Implementation des SMB-Protokolls, verantwortlich zeichnet. Dabei handelt es sich bei rsync zum einen um ein Netzwerkprotokoll (mit dem zugeordneten TCP-Port 873), zum anderen um ein unter der GPL (der General Public License, eine von der Free Software Foundation herausgegebene Lizenz für freie Software) stehende Anwendung. rsync kann von interessierten Entwicklern in eigene Software implementiert werden, was diese offensichtlich auch fleissig getan haben und weiterhin tun. Es gibt rsync für Linux, Mac OS X (arRsync) und Windows (QtdSync, DeltaCopy, Syncrify). Die Umsetzungen unterscheiden sich neben unterschiedlichen grafischen Oberflächen, den GUIs, noch im Funktionsumfang und teilweise in der Nutzung unterschiedlicher Transportwege. So nutzt etwa Syncrify nicht das rsync-Protokoll für die Übertragung der Daten, sondern http(s).

rsync gleicht die zu sichernden Daten dabei nur in einer Richtung ab:

rsync -a /home/ root@192.168.1.4:/backup/home/

sichert die noch NICHT auf dem Zielserver, 192.168.1.4, in /backup/home/ vorhandenen Daten des Quellservers. Dabei überträgt rsync nicht unbedingt ganze Dateien, sondern nur die geänderten (modifizierten) Teile davon (die so genannte Differenzspeicherung oder auch Delta-Kodierung). Dadurch wird die Synchronisation deutlich schneller, als wenn bei jeder Sicherung die gesamten Dateien übertragen würden. Setzt man dann noch die Option für komprimierte Übertragung (Schalter -z), kann der Abgleich noch weiter beschleunigt werden.

Funktion von rsync

Die Funktion von rsync lässt sich einfach nachvollziehen, was Sie in einem kleinen Testszenario auch tun sollten, bevor Sie rsync im produktiven Einsatz nutzen:

  • Richten Sie auf dem Sicherungsserver (dem Zielserver) das gewünschte Backupverzeichnis ein

Als einfaches Beispiel legen wir im Ordner /home die Dateien datei1, datei2 und datei3 an:
quellserver:/home#ls
datei1 datei2 datei3

  • Starten Sie nun einen rsync-Durchlauf:

quellserver:/home# rsync -avz /home/ root@192.168.1.4:/home/backup/
Im Systemlog des Quellservers, dessen Daten Sie ja sichern wollen, sehen Sie in etwa dieses:
Password:
sending incremental file list
./
datei1
datei2
datei3
sent 166 bytes 
received 72 bytes  31.73 bytes/sec
total size is 0  speedup is 0.00
Verbinden Sie sich mit dem Zielserver, der die Backups beherbergen soll, und schauen Sie sich an, was dort jetzt im Sicherungsverzeichnis liegt:
root@backupserver:/home/backup# ls –l
insgesamt 0
-rw-r--r-- 1 root root 0 
4. Nov 12:39 datei1
-rw-r--r-- 1 root root 0  4. Nov 12:39 datei2
-rw-r--r-- 1 root root 0  4. Nov 12:41 datei3

Führen Sie einen erneuten Durchlauf von rsync aus:
quellserver:/home# rsync -avz /home/ root@192.168.1.4:/home/backup/
Password:
sending incremental file list
sent 55 bytes 
received 12 bytes  10.31 bytes/sec
total size is 0  speedup is 0.00
Wie Sie sehen, sehen Sie (fast) nichts, es hat ja keine Änderung in den Dateien stattgefunden. Also wird (bis auf den Austausch der protokollbedingten Informationen) auch nichts übertragen.

  • Ändern Sie jetzt datei3 auf dem Quellserver; unter Linux genügt ein einfaches touch, wodurch das Zugriffsdatum der Datei aktualisiert wird:

touch datei3

Unter Windows könnten Sie die Dateieigenschaften modifizieren oder ähnliches. rsync muss jetzt merken, dass die Datei auf dem Quellserver geändert wurde und sollte beim erneuten Durchlaufen nur die Datei datei3 synchronisieren. Es werden tatsächlich nur die geänderten Teile der Datei gesichert!
quellserver:/home# rsync -avz /home/ root@192.168.1.4:/home/backup/
Password:
sending incremental file list
datei3
sent 99 bytes 
received 31 bytes  23.64 bytes/sec
total size is 0  speedup is 0.00
Eindeutig zu sehen ist nicht nur der erhöhte Datentransfer, sondern anschliessend ebenso das geänderte Datum der datei3:
root@backupserver:/home/backup# ls –la
(…)
-rw-r--r-- 
1 root root     0  4. Nov 12:45 datei3

rsync arbeitet, wie wir an diesem anschaulichen Beispiel erkennen können, unidirektional, also nur in einer Richtung - was ja auch der Sinn eines Backups ist. Wollen Sie eine Spiegelung mehrerer Dateistrukturen erreichen, benötigen Sie ein Tool wie Unison oder Sie starten anschliessend einen erneuten Durchlauf von rsync und zwar in der Gegenrichtung:

backupserver:/home/backup# rsync -avz /home/backup/ root@192.168.1.1:/home/

Was passiert dann? Eine Datei test1 unter /home/backup/ auf dem Backupserver würde zum Quellserver übertragen, wäre dort also verfügbar. Soweit, so gut. Was aber, wenn die Datei datei1 in der Zwischenzeit sowohl auf dem Quellserver wie auch auf dem Backupserver geändert wurde? Dann sticht die letzte Änderung respektive die aktuellste Übertragung. Änderungen in den Dateien auf dem jeweiligen Zielserver werden gnadenlos überschrieben.

Besondere Vorsicht ist übrigens bei der Verwendung der Option --delete geboten! Findet rsync auf dem Quellserver mit dieser Option die Pendants von Dateien auf dem Backupserver nicht, löscht es diese auch auf dem Quellserver:

root@quellserver:/home# rsync -avz --delete /home/ root@192.168.1.4:/home/backup/

Debian GNU/Linux 5.0

Password:

sending incremental file list

./

deleting test1

deleting datei3

deleting datei2

deleting datei1

sent 33 bytes  received 15 bytes  3.10 bytes/sec

total size is 0  speedup is 0.00

Hoppla, da waren sie auf einmal fort die Dateien. Wäre dieses das Backup gewesen, welches nicht zusätzlich noch rotiert (d.h. in ein weiteres Backupziel gesichert worden), wären nunmehr alle Dateien futsch.

Auch aus sicherheitstechnischer Sicht heisst es aufzupassen. rsync nutzt für die Übertragung der Daten keine Verschlüsselung oder ähnliche Sicherheitsfeatures! Deswegen wird in der Regel das ssh-Protokoll genutzt, um die Übertragung abzusichern. Die Syntax auf einem Linuxsystem lautet dann beispielsweise:

rsync -avz -e ssh /home/ root@192.168.1.4:/backup/home/

ssh benutzt üblicherweise den privilegierten Port 22. Was aber, wenn der sicherheitsbewusste Administrator seinen empfangsbereiten Zielserver deswegen nicht auf Port 22, sondern beispielsweise auf Port 2222 lauschen lässt? Dann wird der geänderte Port mit dieser Syntax übergeben:

rsync -avz -e "ssh -p 2222" /home/ root@192.168.1.4:/backup/home/

Was aber, wenn es um die Wiederherstellung der Dateien geht? Hier benötigt rsync – anders als so manche teure, proprietäre Backupsoftware – keine kryptischen Optionen oder geschlossene Systeme, um an die zu sichernden Dateien zu gelangen. Verbinden Sie sich von dem gesicherten Server aus einfach mit einem Tool wie Bitvise Tunnelier über einen gesicherten Übertragungsweg (SFTP, SCP) mit dem Backupserver und sichern Sie die gewünschten Daten zurück. Besonders einfach ginge so etwas natürlich mit einem Samba-Share, beispielsweise zwischen einem Windows-Fileserver und einem Linux-Backupserver, nur müssen Sie bedenken, dass die Übertragung der Daten dann unverschlüsselt stattfindet. Jeder Sniffer im lokalen Netzwerk kann Ihre Daten mitlesen.

Fazit

Rsync bietet also eine ganze Reihe an Vorteilen. Es ist einfach eingerichtet, schnell, kostengünstig und praktisch für alle Betriebssysteme verfügbar. Natürlich hat rsync auch Grenzen. Einen Exchange- oder Lotus Notes-Server können Sie damit prinzipiell auch sichern, aber die schlichte, einfache Funktionalität, mit der rsync besticht, ist dann nicht mehr gegeben.

MaLiWi IT

Produkt-Empfehlungen

  • IT-Sicherheit

    IT-Sicherheit

    Schützen Sie Ihr Unternehmen konsequent vor Systemstörungen und Risiken.

    CHF 98.00

  • Cloud-Computing

    Cloud-Computing

    Erfahren Sie welchen Nutzen Cloud-Computing Ihnen und Ihrem Unternehmen bringen kann.

    Mehr Infos

  • Die wichtigsten IT-Vertragsvorlagen

    Die wichtigsten IT-Vertragsvorlagen

    Über 100 IT-Vertragsvorlagen, Checklisten und Arbeitshilfen auf praktischem USB-Stick.

    Mehr Infos

Seminar-Empfehlung

Praxis-Seminar, 1 Tag, ZWB, Zürich

IT-Verträge entwerfen und verhandeln

Rechtssicherheit bei IT-Projekten, Outsourcing und Cloud Computing

Nächster Termin: 19. Juni 2018

mehr Infos