Mal doof in den Raum geworfen:
Wenn du root auf dem Ziel bist, und auf der Quelle einen SSH-Zugang hast (was wegen Verschlüsselung wirklich sinnvoll ist), kannst du das Ganze mit sshfs und rsync machen.
Mounte die Quelle an einer geeigneten Stelle ins Dateisystem deines Ziels, etwa mit
[src=bash]sshfs user@source:/ /mnt -o reconnect[/src]
und mach dann mit
[src=bash]rsync -ahu --progress --stats /mnt/sourcedirectory/ /home/user/target[/src]
einen quasi "lokalen" Kopiervorgang. Das hat mehrere Vorteile:
1. Der Transfer ist verschlüsselt
2. Bricht die Verbindung kurzzeitig ab, ist sshfs dank -o reconnect in der Lage, sie wieder herzustellen. Um eventuell erforderliche Anmeldungen am SSH-Server zu automatisieren, empfiehlt sich Schlüsselauthentifikation mit RSA-Keypair. Für den Fall muss sshfs so aufgerufen werden:
[src=bash]sshfs -o ssh_command="ssh -i /home/user/.ssh/id_rsa" user@source:/ /mnt -o reconnect[/src]
3. Bricht die Verbindung dauerhaft ab, kann rsync genau dort fortsetzen, wo es aufhören musste.
4. Rechte, Timestamps und ähnliches werden von rsync nicht angetastet - sofern dein User die gleiche UID hat wie auf der Quelle, ändert sich für dich also gar nichts.
5. Sitzt du nicht vor dem Zielserver, sondern loggst dich dort über ssh ein, empfielt sich die Ausführung von rsync in screen. Damit kannst du nach dem Starten screen detachen, die SSH-Verbindung beenden und rsync seine Arbeit machen lassen, kannst aber jederzeit wieder einloggen und mit screen -r nachschauen, wie weit er ist.
Alternativ ist rsync auch in der Lage, eigene Netzwerkverbindungen aufzubauen, sich selbst als Host auf dem Quellsystem auszuführen und anzusprechen etc. Das Ding ist einfach nur mächtig. Ich kann jedoch die Zusammenarbeit mit sshfs nur empfehlen - ich arbeite schon Jahre damit.
Was den Anfänger angeht, schließe ich mich alter_Bekannter an. Linux ist zwar out of the box meist weitgehend sicher, man kann es aber auch sehr schnell unsicher schießen.
Wenn du root auf dem Ziel bist, und auf der Quelle einen SSH-Zugang hast (was wegen Verschlüsselung wirklich sinnvoll ist), kannst du das Ganze mit sshfs und rsync machen.
Mounte die Quelle an einer geeigneten Stelle ins Dateisystem deines Ziels, etwa mit
[src=bash]sshfs user@source:/ /mnt -o reconnect[/src]
und mach dann mit
[src=bash]rsync -ahu --progress --stats /mnt/sourcedirectory/ /home/user/target[/src]
einen quasi "lokalen" Kopiervorgang. Das hat mehrere Vorteile:
1. Der Transfer ist verschlüsselt
2. Bricht die Verbindung kurzzeitig ab, ist sshfs dank -o reconnect in der Lage, sie wieder herzustellen. Um eventuell erforderliche Anmeldungen am SSH-Server zu automatisieren, empfiehlt sich Schlüsselauthentifikation mit RSA-Keypair. Für den Fall muss sshfs so aufgerufen werden:
[src=bash]sshfs -o ssh_command="ssh -i /home/user/.ssh/id_rsa" user@source:/ /mnt -o reconnect[/src]
3. Bricht die Verbindung dauerhaft ab, kann rsync genau dort fortsetzen, wo es aufhören musste.
4. Rechte, Timestamps und ähnliches werden von rsync nicht angetastet - sofern dein User die gleiche UID hat wie auf der Quelle, ändert sich für dich also gar nichts.
5. Sitzt du nicht vor dem Zielserver, sondern loggst dich dort über ssh ein, empfielt sich die Ausführung von rsync in screen. Damit kannst du nach dem Starten screen detachen, die SSH-Verbindung beenden und rsync seine Arbeit machen lassen, kannst aber jederzeit wieder einloggen und mit screen -r nachschauen, wie weit er ist.
Alternativ ist rsync auch in der Lage, eigene Netzwerkverbindungen aufzubauen, sich selbst als Host auf dem Quellsystem auszuführen und anzusprechen etc. Das Ding ist einfach nur mächtig. Ich kann jedoch die Zusammenarbeit mit sshfs nur empfehlen - ich arbeite schon Jahre damit.
Was den Anfänger angeht, schließe ich mich alter_Bekannter an. Linux ist zwar out of the box meist weitgehend sicher, man kann es aber auch sehr schnell unsicher schießen.
Zuletzt bearbeitet: