Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

王林
王林nach vorne
2023-05-14 09:46:057832Durchsuche

scp ist die Abkürzung für secure copy, einem sicheren Remote-Dateikopierbefehl, der auf der SSH-Anmeldung unter einem Linux-System basiert. scp ist verschlüsselt, rcp ist unverschlüsselt, scp ist eine erweiterte Version von rcp. secure copy的简写, 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

因为scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

场景:假设我现在有两台服务器(这里的公网ip和内网ip相互传都可以,当然用内网ip相互传比较快,**公网ip不便公布)

Sessions1: 47.95.208.2**
内网:172.17.31.174
User:root
Sessions2: 47.94.92.2**
内网:172.17.31.173
User:root

这里常用的两种办法:

1.当从一个远程服务器传输文件到另一个服务器上(你想传给别人文件)

现在我们登录172.17.31.173这台服务器,想把当前的 test.mysql 传给别人( 172.17.31.174 这台服务器)

hostname -i

Da die SCP-Übertragung verschlüsselt ist, kann dies die Geschwindigkeit geringfügig beeinträchtigen. Darüber hinaus belegt scp keine Ressourcen und erhöht die Systemlast nicht wesentlich. In dieser Hinsicht liegt rsync weit zurück. Obwohl rsync schneller als scp ist, führt rsync bei vielen kleinen Dateien zu sehr hohen Festplatten-E/A-Vorgängen, während scp grundsätzlich keinen Einfluss auf die normale Nutzung des Systems hat.

So übertragen Sie Dateien direkt zwischen zwei Servern unter LinuxSzenario: Angenommen, ich habe jetzt zwei Server (die öffentliche IP und die Intranet-IP können hier aufeinander übertragen werden. Natürlich ist es schneller, die Intranet-IP für die gegenseitige Übertragung zu verwenden. **Die öffentliche IP ist unpraktisch zu veröffentlichen )

scp test.sql root@172.17.31.174:/data/

Hier häufig verwendet Zwei Methoden: So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

1. Beim Übertragen von Dateien von einem Remote-Server auf einen anderen Server (Sie möchten Dateien auf andere übertragen)

Jetzt melden wir uns beim Server 172.17.31.173 an und möchten die verwenden aktuelle test.mysql Geben Sie es an andere weiter (172.17.31.174 diesen Server)

hostname -i Sie können die aktuelle IP überprüfen

So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

Befehl:

-1: 强制scp命令使用协议ssh2
-2: 强制scp命令使用协议ssh3
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p: 保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v: 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher:        以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config:    指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit:         限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option:    如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:          注意是大写的P, port是指定数据传输用到的端口号
-S program:       指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

Wenn die beiden Server nicht mit passwortfreiem Login konfiguriert sind, müssen Sie ein Passwort eingeben. So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

Ich verwende hier die Intranet-IP, daher ist die Übertragung schneller. Wenn Sie das öffentliche Netzwerk verwenden, wird es viel langsamer (persönlicher Test)

Die Übertragung ist abgeschlossen!

Überprüfen Sie den Server mit dem IP-Suffix 174:

So übertragen Sie Dateien direkt zwischen zwei Servern unter LinuxAnhang:

scp [optionale Parameter] file_source file_target

Häufig verwendet -r, -C

scp -r root@172.17.31.173:/data/local_test /data/

2. Auf dem lokalen Server, von einem anderen. Dateien abrufen vom Server (Sie möchten Dateien von anderen erhalten)So übertragen Sie Dateien direkt zwischen zwei Servern unter Linux

Erstellen Sie einen neuen local_test im 173-Dienstdatenverzeichnis, um den Ordner zu testen (zum Testen des Parameters -r)

Gehen Sie dann zum lokalen Server (*174 dieses Taiwan), der lokale Server hier ist relativ.

Befehl:

scp root@远程的服务器Ip:文件路径 存放路径

Um einen Ordner zu kopieren, müssen Sie nach scp -r hinzufügen Datei in eine andere (lokale) Datei verschieben)

Befehl:

scp test.sql root@172.17.31.174:/data/

Erfordert die (lokale) IP-Adresse einer anderen Person für die Übertragung🎜🎜Melden Sie sich beim lokalen Server an und holen Sie sich die Datei vom Remote-Server (ergreifen Sie die Initiative, um die Datei abzurufen). jemand anderes)🎜🎜Befehl:🎜
scp -r root@172.17.31.173:/data/local_test /data/
🎜Erfordert eine Remote-IP-Adresse (Andere), um die Datei zu erhalten🎜

Das obige ist der detaillierte Inhalt vonSo übertragen Sie Dateien direkt zwischen zwei Servern unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen