Da die Datenmenge weiter zunimmt, ist die Effizienz des Dateikopierens zu einem unvermeidlichen Problem bei Serverbetrieb und -wartung geworden. Es gibt viele Möglichkeiten, Dateien unter Linux-Systemen zu kopieren, aber viele Benutzer wissen möglicherweise nicht, welche Methode für ihre eigenen Szenarien geeignet ist. In diesem Artikel stellen wir Ihnen einige gängige Linux-Methoden zum Kopieren von Dateien vor, analysieren deren Vor- und Nachteile und helfen Ihnen, die Lösung zu finden, die am besten zu Ihnen passt.
Ich habe alle Befehle und Skripte in meiner eigenen Umgebung getestet, sodass Sie sie direkt in Ihrer täglichen Arbeit verwenden können.
Normalerweise bevorzugt jeder scp, weil es einer der nativen Befehle zum Kopieren von Dateien ist. Allerdings sind auch die anderen in diesem Artikel aufgeführten Befehle sehr nützlich, und ich empfehle Ihnen, sie auszuprobieren.
Das Kopieren von Dateien kann einfach mit den folgenden vier Methoden durchgeführt werden.
scp: Kopieren Sie Dateien zwischen zwei Hosts im Netzwerk. Es verwendet SSH für die Dateiübertragung und verwendet dieselbe Authentifizierungsmethode mit derselben Sicherheit.
rsync: ist ein schnelles und vielseitiges Tool zum Kopieren von Dateien. Es kann lokal, zwischen anderen Hosts über eine Remote-Shell oder mit einem Remote-rsync-Daemon kopiert werden.
pscp: ist ein Programm, das Dateien parallel auf mehrere Hosts kopiert. Es bietet viele Funktionen, wie z. B. die Konfiguration geheimnisfreier Übertragungen für scp, das Speichern der Ausgabe in Dateien und die Zeitüberschreitungskontrolle.
prsync: ist ebenfalls ein Programm, das Dateien parallel auf mehrere Hosts kopiert. Es bietet außerdem viele Funktionen, wie z. B. die Konfiguration passwortfreier Übertragungen für SSH, das Speichern von Ausgaben in Dateien und die Zeitüberschreitungskontrolle.
Methode 1: Wie kopiere ich Dateien/Ordner vom lokalen System auf das Remote-System mit dem scp-Befehl unter Linux?
Mit dem Befehlscp
können wir Dateien/Ordner vom lokalen System auf das Remote-System kopieren.
Ich werde die Datei „output.txt“ vom lokalen System in den Ordner /opt/backup des Remote-Systems 2g.CentOS.com kopieren.
# scp output.txt root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00
Kopieren Sie die beiden Dateien „output.txt“ und „passwd-up.sh“ vom lokalen System in den Ordner /opt/backup des Remote-Systems 2g.CentOs.com.
# scp output.txt passwd-up.sh root@2g.CentOS.com:/opt/backup output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00
Kopieren Sie den Shell-Script-Ordner vom lokalen System in den Ordner /opt/back des Remote-Systems 2g.CentOs.com.
Dadurch werden alle Dateien im Shell-Script-Ordner nach /opt/back kopiert.
# scp -r /home/daygeek/2g/shell-script/ root@:/opt/backup/ output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00
Methode 2: Wie kopiere ich Dateien/Ordner mit dem scp-Befehl und einem Shell-Skript unter Linux auf mehrere Remote-Systeme?
Wenn Sie dieselbe Datei auf mehrere Remote-Server kopieren möchten, müssen Sie ein kleines Shell-Skript wie das folgende erstellen.
Außerdem muss der Server zur Datei server-list.txt hinzugefügt werden. Stellen Sie sicher, dass sich nach erfolgreicher Hinzufügung jeder Server in einer eigenen Zeile befindet.
Letztendlich sieht das gewünschte Skript so aus:
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp /home/daygeek/2g/shell-script/output.txt root@$server:/opt/backup done
Legen Sie nach Abschluss die ausführbaren Berechtigungen für die Datei file-copy.sh fest.
# chmod +x file-copy.sh
Führen Sie abschließend das Skript aus, um den Kopiervorgang abzuschließen.
# ./file-copy.sh output.txt 100% 2468 2.4KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00
Verwenden Sie das folgende Skript, um mehrere Dateien auf mehrere Remote-Server zu kopieren.
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp /home/daygeek/2g/shell-script/output.txt passwd-up.sh root@$server:/opt/backup done
Die folgenden Ergebnisse zeigen, dass alle beiden Dateien auf beide Server kopiert werden.
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00
Verwenden Sie das folgende Skript, um Ordner rekursiv auf mehrere Remote-Server zu kopieren.
# file-copy.sh #!/bin/sh for server in `more server-list.txt` do scp -r /home/daygeek/2g/shell-script/ root@$server:/opt/backup done
Die Ausgabe des obigen Skripts.
# ./file-cp.sh output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00 output.txt 100% 2468 2.4KB/s 00:00 ovh.sh 100% 76 0.1KB/s 00:00 passwd-up.sh 100% 877 0.9KB/s 00:00 passwd-up1.sh 100% 7 0.0KB/s 00:00 server-list.txt 100% 23 0.0KB/s 00:00
Methode 3: Wie verwende ich den Befehl pscp, um Dateien/Ordner auf mehrere Remote-Systeme unter Linux zu kopieren?
Mit dem Befehlpscp
können wir Dateien direkt auf mehrere Remote-Server kopieren.
Verwenden Sie den folgenden pscp-Befehl, um eine einzelne Datei auf einen Remote-Server zu kopieren.
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:46:11 [SUCCESS] 2g.CentOS.com
Verwenden Sie den pscp-Befehl unten, um mehrere Dateien auf einen Remote-Server zu kopieren.
# pscp.pssh -H 2g.CentOS.com /home/daygeek/2g/shell-script/output.txt ovh.sh /opt/backup [1] 18:47:48 [SUCCESS] 2g.CentOS.com
Verwenden Sie den pscp-Befehl unten, um den gesamten Ordner rekursiv auf den Remote-Server zu kopieren.
# pscp.pssh -H 2g.CentOS.com -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:48:46 [SUCCESS] 2g.CentOS.com
Verwenden Sie den pscp-Befehl unten, um eine einzelne Datei mit dem folgenden Befehl auf mehrere Remote-Server zu kopieren.
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt /opt/backup [1] 18:49:48 [SUCCESS] 2g.CentOS.com [2] 18:49:48 [SUCCESS] 2g.Debian.com
Verwenden Sie den pscp-Befehl unten, um mehrere Dateien auf mehrere Remote-Server zu kopieren.
# pscp.pssh -h server-list.txt /home/daygeek/2g/shell-script/output.txt passwd-up.sh /opt/backup [1] 18:50:30 [SUCCESS] 2g.Debian.com [2] 18:50:30 [SUCCESS] 2g.CentOS.com
**
Verwenden Sie den folgenden Befehl, um einen Ordner rekursiv auf mehrere Remote-Server zu kopieren. **
# pscp.pssh -h server-list.txt -r /home/daygeek/2g/shell-script/ /opt/backup [1] 18:51:31 [SUCCESS] 2g.Debian.com [2] 18:51:31 [SUCCESS] 2g.CentOS.com
Im Allgemeinen ist es nicht schwierig, in Linux-Systemen ein effizientes Kopieren von Dateien zu erreichen. Solange Sie die entsprechenden Tools oder Befehle entsprechend den tatsächlichen Anforderungen auswählen, können Sie die Geschwindigkeit und Effizienz der Dateiübertragung verbessern. In diesem Artikel stellen wir einige gängige Methoden zum Kopieren von Dateien vor und analysieren ihre Vor- und Nachteile. Ich hoffe, dieser Artikel kann Linux-Systemadministratoren helfen und es jedem ermöglichen, die Prinzipien und Methoden des Dateikopierens besser zu verstehen.
Das obige ist der detaillierte Inhalt vonWie erreicht man ein effizientes Kopieren von Dateien im Linux-System?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!