GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So übertragen Sie schnell große Dateien über das Netzwerk unter Linux und Unix

Heute musste ich meinen Ubuntu-Server neu installieren, den ich oft zum Testen verschiedener Anwendungen verwende. Mein Ubuntu-Server hat über 200 GB Daten und ich möchte sie nicht verlieren. Ich kann diese Daten über scp übertragen oder NFS oder FTP einrichten, um Dateien zu kopieren, aber ich bin mir ziemlich sicher, dass es Stunden dauern würde, so große Dateien zu übertragen. Bei der Suche nach einer alternativen Methode bin ich auf die folgende Methode gestoßen. Mit netcat können wir schnell große Dateien zwischen zwei Systemen über das Netzwerk übertragen , tar , und pv Befehle in allen GNU/Linux- und Unix-ähnlichen Betriebssystemen. Im Gegensatz zu anderen Methoden finde ich es sehr schnell und schnell. Für diejenigen, die es nicht wissen, Netcat ist ein einfaches Unix-Dienstprogramm, das Daten über Netzwerkverbindungen unter Verwendung des TCP- oder UDP-Protokolls liest und schreibt. tar ist ein Kommandozeilen-Archivierungstool und pv , steht für Pipe Viewer, wird verwendet, um den Fortschritt von Daten zu überwachen. Lassen Sie mich Ihnen nun zeigen, wie Sie große Dateien schnell zwischen zwei Linux-Systemen übertragen können. Es ist nicht so schwierig, wie Sie denken. Lesen Sie weiter.

Herunterladen - Kostenloses eBook:"6 nützliche Linux-Befehlszeilen-Tools für Systemadministratoren"

Übertragen Sie schnell große Dateien über das Netzwerk zwischen zwei Systemen in GNU/Linux

Stellen Sie sicher, dass Sie die Dienstprogramme „netcat“ und „pv“ auf Ihren Systemen installiert haben. Wenn sie noch nicht installiert sind, können Sie sie wie unten gezeigt installieren. Das „tar“-Paket ist standardmäßig auf den meisten Linux-Systemen verfügbar, sodass Sie es nicht installieren müssen.

Auf Arch Linux und seinen Derivaten:

$ sudo pacman -S netcat pv

Unter RHEL, CentOS, Fedora:

$ sudo yum install epel-release
$ sudo yum install nc pv

Oder,

$ sudo dnf install nc pv

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install netcat pv

Lassen Sie uns nun sehen, wie Sie die große(n) Datei(en) schnell zwischen zwei Systemen kopieren können.

Führen Sie dazu den folgenden Befehl als root aus Benutzer auf dem Empfangsknoten (Zielsystem):

# netcat -l -p 7000 | pv | tar x

Auf dem sendenden Knoten (Quellsystem), führen Sie diesen Befehl als root aus Benutzer:

# tar cf - * | pv | netcat 192.168.1.105 7000

Hier, 192.168.1.105 ist mein Zielsystem. tar cf - * kopiert alles im aktuellen Arbeitsverzeichnis auf das Zielsystem und die Dateien werden am anderen Ende extrahiert.

Hinweis: Verwenden Sie auf RHEL- und CentOS-Systemen "nc" anstelle von "netcat", wie unten gezeigt. Und Sie müssen den Port "7000" hinzufügen an die iptables / firewall-cmd auf dem Zielsystem.

Nachdem Sie den Port auf dem Zielsystem hinzugefügt haben, können Sie die größeren Dateien wie unten gezeigt übertragen.

Auf dem Zielsystem:

# nc -l -p 7000 | pv | tar x

Auf Quellsystem:

# tar cf - * | pv | nc 192.168.1.105 7000

Außerdem können Sie eine bestimmte Datei wie unten angeben.

# tar cf - /home/sk/test.file | pv | netcat 192.168.1.105 7000

Bitte beachten Sie, dass auf beiden Systemen netcat installiert sein sollte . Holen Sie sich jetzt eine Tasse Kaffee. Sie werden sehen, dass die Dateien sehr viel schneller kopiert werden als mit herkömmlichen Methoden wie scp.

Außerdem sehen Sie auf beiden Seiten keine Anzeichen dafür, dass die Dateiübertragung abgeschlossen ist. Diese Befehle werden so lange ausgeführt, bis Sie sie manuell stoppen. Sie müssen die Dateigrößen auf beiden Systemen mit "du -h " manuell überprüfen Befehl. Wenn die Dateigröße im Zielsystem dieselbe wie im Quellsystem ist, können Sie davon ausgehen, dass der Dateiübertragungsprozess abgeschlossen ist, und den Befehl durch Drücken von STRG+C beenden .

Große Dateien schnell zwischen zwei Systemen in Unix übertragen

Auf Unix-Betriebssystemen netcat wird als nc bezeichnet. Um also große Dateien zwischen Systemen über das Netzwerk zu kopieren, lautet der Befehl:

Auf dem Zielsystem:

# nc -l 7000 | pv | tar -xpf -

Auf Quellsystem:

# tar -cf - * | pv | nc 192.168.1.105 7000

Auch hier sollten diese Befehle als root ausgeführt werden Benutzer. Und sowohl Quell- als auch Zielsystem sollten netcat und pv installiert haben. Das Übertragen großer Dateien über LAN mit netcat und tar kann Ihnen tatsächlich viel Zeit sparen.

Haftungsausschluss: Bitte beachten Sie, dass diese Methode keine Sicherheit bietet . Denn wie Sie in den obigen Beispielen sehen, gibt es auf keiner Seite eine Authentifizierung. Alles, was Sie wissen müssen, ist die IP-Adresse des Zielsystems. Das Übertragen von Dateien mit netcat wird nur innerhalb geschützter Netzwerke empfohlen . Wenn Sie in Bezug auf Sicherheit paranoid sind, empfehle ich Ihnen dringend, scp zu verwenden Befehl.

Wenn Ihnen Sicherheit so wichtig ist, können Sie Rsync verwenden um Dateien sicher zu übertragen.

$ rsync -ravz /path/to/source/files/ destination-ip:/path/on/destiny

Danke:Ppnman

Das ist es. Kennen Sie eine andere Möglichkeit, große Dateien schnell zu kopieren? Bitte teilen Sie es im Kommentarbereich unten.


Linux
  1. So übertragen Sie Dateien zwischen zwei Computern mit den Befehlen nc und pv

  2. So finden Sie große Dateien unter Linux mit den Befehlen find und du

  3. Linux – Standard- und/oder gemeinsame Verzeichnisse auf Unix/Linux-Betriebssystemen?

  4. So verwenden Sie Netcat zum Übertragen von Dateien unter Linux

  5. Wie kopiert man Dateien unter Linux und Unix? 10 cp Befehlsbeispiele

So installieren Sie Rclone unter Linux und Unix

So konfigurieren Sie eine statische IP-Adresse in Linux und Unix

So stellen Sie Dateien und Ordner schnell über HTTP in Linux bereit

So übertragen Sie Dateien zwischen Dropbox und Google Drive mit Rclone unter Linux

So verschieben Sie eine große Anzahl von Dateien in Linux

So kopieren Sie eine große Anzahl von Dateien unter Linux