Sicheres Backup mit Tar und SSH übers Netz

tar (ursprünglich “Tape-Archiver”) ist ein weit verbreitetes Archivierungstool, mit dem relativ einfach Backups erstellt werden können. “tar” hat sehr viele Optionen, in der einfachsten Verwendung wird aber eigentlich nur “c” für “create archive” und “x” für “extract archive” verwendet. “tar” lässt sich einfach mit “|” (Pipes) verwenden, indem auf Standard-Out geschickt und von Standard-In gelesen wird. Kombiniert man “tar” mit” ssh”, kann man einfach sichere Backups übers Netz realisieren.

tar

tar cf filename.tar Pfadname

So wird “tar” verwendet, um ein Backup in eine Datei namens “filename.tar” vom Verzeichnis Pfadname zu erstellen. Es kann zusätzlich “z” (gzip) oder “j” für die etwas stärkere “bzip”-Variante für die Kompression gewählt werden. Falls “gzip” zusätzlich angewandt wird, sollte die Dateiendung “.tar.gz” heissen. Mit “bzip” sollte “.tar.bz2” verwendet werden. Nachdem das Tarfile erstellt wurde, kann man dieses mit

tar tvf filename.tar

ansehen. Allenfalls mit den Optionen “z” oder “j”, wenn zusätzliche Komprimierung verwendet wurde.

ssh

Mit SSH kann das Backup über das Netz transportiert werden.

tar cf - Pfadname | ssh zielhost "cat - > pfadzumbackup/filename.tar"

“-” wird verwendet, um das Backup auf Standard-Out zu schicken, und auf der anderen Seite auf dem Ziel-Host “-“, um in eine Datei umzuleiten (Standard-In).

~/.ssh/config

In diese Konfigurationsdatei im Heimverzeichnis des Benutzers, der das Backup ausführen möchte, können Optionen für die SSH-Verbindung auf den Host (hier Ziel-Host), der das Backup entgegennimmt, hinterlegt werden. Zum Beispiel:

host zielhost
HostName 1.2.3.4
User backup
Compression yes
Compressionlevel 9

Es bietet sich zusätzlich an, für diese Verbindung einen SSH-Schlüssel zu verwenden. Dieser kann mit “ssh-keygen” generiert und mit “ssh-copy-id” auf den Ziel-Host kopiert werden. In der Datei “.ssh/config” wird dieser mit der Option “IdentityFile ssh-key-file” angegeben. Das Ganze wird folgendermassen ausgeführt:

backuphost$ ssh-keygen
backuphost$ ssh-copy-id backup@zielhost

Nun sollte man sich ohne Passwort auf den Ziel-Host mit dem Benutzer-Backup anmelden können (der Benutzername “backup” muss auf dem Ziel-Host existieren!). Die “ssh/.config”-Datei könnte nun so aussehen:

host zielhost
HostName 1.2.3.4
User backup
Compression yes
Compressionlevel 9
IdentityFile ~/.ssh/id_rsa

 

Fazit

Mit den obengenannten Boardmitteln kann einfach ein Backup erstellt werden. Ebenfalls lässt sich dies über ein Skript und mit der Ausführung über “cron” automatisieren. Dies ist beliebig erweiterbar, z.B. mit Logfile, Datum auf dem Tarfile etc. Auch die Flexibilität mit allen möglichen Optionen von tar ist gegeben.

Michi Zaugg
Michi Zaugg ist Fachbereichsleiter Linux und Unix bei Digicomp. Er arbeitet seit 12 Jahren in der Informatikbranche. Als Netzwerk- und Sicherheitsadministrator leitete er ein Netzwerkteam und studiert derzeit berufsbegleitend Informatik an der Hochschule Rapperswil (Informatik Ing. FH.). Zudem verfügt er über die LPI-Zertifizierung.

Diesen Artikel kommentieren

Wir sind sehr an einer offenen Diskussion interessiert, behalten uns aber vor, beleidigende Kommentare sowie solche, die offensichtlich zwecks Suchmaschinenoptimierung abgegeben werden, zu editieren oder zu löschen. Mehr dazu in unseren Kommentarregeln.