So kopieren Sie Verzeichnisse rekursiv mit scp

0
372

Ein häufiges Problem beim Arbeiten mit Dateien besteht darin, Operationen rekursiv oder auf alle anzuwenden Unterverzeichnis im gesamten Ordner. Das Dienstprogramm scp wird verwendet, um Dateien und Verzeichnisse auf Remote-Server zu übertragen und unterstützt rekursive Vorgänge.

Scp rekursiv ausführen

Während es ist manchmal schneller, wenn große Übertragungen in einem einzigen Archiv, dem sogenannten Tarball, durchgeführt werden. Meistens spielt der Aufwand für die Übertragung einzelner Dateien keine Rolle.

Das rekursive Kopieren mit scp ist einfach: einfach Verwenden Sie das Flag -r zusätzlich zu allem anderen, was Sie hinzugefügt haben:

scp -r localpath user@remote:/remotepath

Beachten Sie, dass dies explizit in Kleinbuchstaben geschrieben ist -r, im Gegensatz zu vielen anderen Befehlen, die verwenden oder erfordern -R.

Dies funktioniert wie ein Drag-and-Drop in /remotepath/, kopiert den Inhalt von localpath/auf die Fernbedienung und legt sie in /remotepath/localpath/ab.

Werbung

Wenn du stattdessen localpath synchronisieren möchtest / und /remotepath/, müssen Sie den Ordner in den übergeordneten Ordner von /remotepath/, dem Ziel, übertragen. In diesem Fall wäre das /, das Stammverzeichnis.

Dies wird beim Auflösen von Dateien auch symbolischen Links im lokalen Pfad folgen, aber nicht unbedingt dieselben Links auf dem Remote-Server erstellen. Wenn Sie beispielsweise eine brandneue Datei nach und von /etc/nginx/sites-enabled kopieren, wird sie nicht automatisch in /etc/nginx/sites-available auf der Fernbedienung platziert.

Stattdessen rsync verwenden

Linux hat mehrere Tools, um diese Aufgabe zu erledigen, und eines der besseren ist rsync, das alles kann, was scp kann, aber viel mehr Optionen hat und viel schneller ist zu booten. Es kopiert auch keine Dateien, die nicht geändert wurden, was es zu einem großartigen Werkzeug für die kontinuierliche “Synchronisierung” zwei Verzeichnisse miteinander verbinden, ohne dass Daten unnötig erneut übertragen werden müssen.

rsync funktioniert im Wesentlichen wie scp, mit einigen weiteren Optionen zum Festlegen der Einstellungen:

rsync -a -essh ​​localpath/user @remote:/remotepath/

Das Flag -a gibt den Archivmodus an, der viele häufig verwendete Optionen gleichzeitig aktiviert. Das Flag -e ssh richtet rsync für die Übertragung über SSH ein.

VERWANDTE: So verwenden Sie rsync zum Sichern Ihrer Daten unter Linux