Backup-Dateien vom Server (statische IP) auf den Home-Server (dynamische IP)

168

Ich bin bereits vertraut und verwende rsync, scp-Überweisungen, tar, 7z usw., aber keine davon löste ein Backup, das ich eher regelmäßig machen möchte.

Ich habe einen Remote-Server mit 80% belegtem Speicherplatz auf 100-GB-SSD, von dem ich ein Backup erstellen möchte. Der Server hat mehr als 10.000 kleine Dateien, so dass ein einfaches Tarball oder eine Art Zwischenkomprimierung (wie rsync -z) hilfreich ist.

Ich habe einen Server zu Hause, auf den ich eine Sicherungskopie erstellen möchte, aber er verwendet Dynamic IP.

Die Schwierigkeit besteht darin, rsync -z oder scp und tar (via Pipe) zu verwenden. Dies muss auf einem Remote-Server erfolgen, aber der Server kann meinen Heimserver nicht sehen, da er über dynamische IP-Adresse verfügt.

Ich kann also nur Befehle auf meinem Home-Server ausführen, wie zum Beispiel scp user @ remoteserver: / files / to / backup / home / user / backups. Dies kann jedoch nicht komprimiert werden, sodass die Übertragung der riesigen Anzahl von Dateien sehr lange dauert.

Gibt es einen schnelleren Weg?

PS Ich muss keine Dateiberechtigungen usw. speichern, die der Tarball hat

Edit: Aufgrund des begrenzten Speicherplatzes auf dem Remote-Server kann ich dort keine Tarballs erstellen und auf dem Home-Server ziehen. Deshalb muss es in Echtzeit sein.

0

2 Antworten auf die Frage

2
Sven

Warum können Sie nicht rsyncvon Ihrem Sicherungsziel aus initiieren ? Es gibt keine inhärente Einschränkung rsync, die dies verhindern würde. Laufen

rsync -avz user@remote.example.com:/data /backupdir 

auf dem Backup-Ziel (Home-Server) sollte genau das tun.

Ich stimme zu, ich mache genau so etwas, um meinen eigenen Server zu sichern. Durch das Initiieren der Kopie auf dem Server wird eine Reihe von Würmern geöffnet, da Ihr Home-Server Verbindungen aus dem Internet akzeptieren muss. Dies ist natürlich möglich, aber es ist nicht so einfach, sicherzustellen, dass es sich um Watertigh handelt (und bleibt). xenoid vor einem Jahr 0
0
davidgo

Es gibt viele Optionen. Am einfachsten ist es, den Befehl -C einfach zu SSH hinzuzufügen, wodurch die Komprimierung für die Verknüpfung ermöglicht wird.

Eine ausgeklügeltere (und schnellere Lösung für kleine Dateien und Latenzzeiten) wäre das Löschen von scp und die Verwendung einer Pipe zum schnellen Komprimieren von Daten. So etwas wie tar -cz / path / to / backup | SSH-Benutzer @ remote "cd / path; tar -xz" komprimiert und dekomprimiert Dateien mit gzip-Komprimierung. Natürlich hindert Sie nichts daran, nach ssh einen anderen Befehl zu verwenden, wenn Sie zum Beispiel nur die komprimierte Datei speichern möchten, stattdessen "cat> /path/to/file.tar.gz" verwenden können.

Mir ist unklar, warum Sie hier von dynamischen IPs sprechen. Wenn dies ein Problem darstellt, können Sie dynamisches DNS verwenden oder ein VPN mit dem Server auf der Statik einrichten oder einen Abruf von der dynamischen IP-Adresse aus initiieren, anstatt von der statischen Adresse aus zu pushen.