In einer Linux-Umgebung mit mehreren Servern beinhalten viele Aufgaben das Verschieben einer oder mehrerer Dateien von einem Server auf einen anderen. Abhängig von der Anzahl der Dateien, die Sie verschieben müssen, gibt es mehrere Befehle, die Ihnen helfen können….
Nehmen wir für diese Diskussionen an, dass unsere Server Alice und Madhat sind und dass unser Benutzer auf Alice Kaninchen ist und unser Benutzer auf Madhat Fieldmouse ist.
Schritte
Schritt 1. Versuchen Sie für eine einzelne Datei den Befehl "scp"
Sie können dies als "Push"- oder "Pull"-Befehl verwenden, aber beginnen wir damit, die Datei auf den anderen Server zu übertragen. Verwenden Sie in Alice den Befehl "scp myfile fieldmouse@madhat:thatfile". Dadurch wird die Datei auf das andere System in die fieldmouse-Benutzer-ID mit dem Namen "thatfile" kopiert. Wenn Sie auf dem anderen System angemeldet waren, können Sie die Datei genauso einfach mit dem Befehl "scp rabbit@alice:myfile thatfile" abrufen und die gleichen Ergebnisse erhalten.
Schritt 2. Um ein ganzes Verzeichnis zu kopieren, können wir wieder auf den Befehl "scp" zurückgreifen
Dieses Mal fügen wir den Schalter -r hinzu, damit die Kopie "rekursiv" agiert. "scp -r mydir fieldmouse@madhat:." kopiert das gesamte Verzeichnis "mydir" auf das andere System, einschließlich aller Inhalte und zusätzlicher Verzeichnisse. Das Verzeichnis auf madhat wird weiterhin mydir heißen.
Schritt 3. Was ist, wenn Sie ein großes "Durcheinander" von Dateien und Verzeichnissen kopieren müssen?
Sie könnten den "tar"-Befehl verwenden, um eine einzelne Datei zu erstellen und diese Datei dann wie oben beschrieben zu kopieren und dann mit tar auf dem anderen Server zu erweitern … Aber das scheint so … Un-Unix-artig zu sein. Es muss doch einen Weg geben, dies in einem einzigen Schritt zu tun, oder? Natürlich! Geben Sie die Pfeifen Ihrer Lieblingsmuschel ein. Wir können immer noch tar verwenden, um die gewünschten Dateien zu packen, und dann ssh verwenden, um sie auf das andere System zu bringen (was scp unter der Decke verwendet hat), und auf der anderen Seite tar verwenden, um die Dateien wieder zu entpacken. Aber warum Zeit und Platz verschwenden, um eine tatsächliche tar-Datei zu erstellen, wenn wir einfach eine Pipe erstellen könnten, die die beiden Systeme überspannt, und die tar-Daten darüber übertragen?Verwenden Sie dasselbe Verzeichnis wie im vorherigen Beispiel und versuchen Sie es mit "tar -cf - mydir/ * | ssh fieldmouse@madhat 'tar -xf -'"
Tipps
- Natürlich gibt es auch andere Möglichkeiten, dies zu tun. Linux ist voller Tools. Ihr Kilometerstand kann variieren
- Sie sollten Benutzername/Hostname/Dateiname/Verzeichnisname entsprechend Ihrer Netzwerkkonfiguration und Umgebung ersetzen, während Sie die obigen Befehle verwenden. Die oben gezeigten Befehle sind nur Beispiele für die Ausführung von Befehlen zum Kopieren von Dateien auf den Server.