假设有两台linux服务器,如何将111.22.3.64上的/usr/local/example-server目录下的所有文件和目录拷贝到55.166.77.246的/usr/local/example-server目录下?
Linux服务器远程文件拷贝两种方法介绍
要从一个Linux服务器拷贝文件到另一个Linux服务器,可以使用scp
命令或rsync
命令。以下是如何使用这两个命令来完成上述操作:
- 使用
scp
命令
首先,确保你已经在两台服务器上安装了openssh-clients
(如果你使用的是RedHat/CentOS系列的Linux)或者openssh-client
(如果你使用的是Debian/Ubuntu系列的Linux)。
使用以下命令将文件从111.22.3.64
拷贝到55.166.77.246
:
scp -r [email protected]:/usr/local/example-server/* [email protected]:/usr/local/example-server/
- 注意:此命令默认将使用SSH的默认端口22。如果你的SSH使用了不同的端口,你需要使用
-P
选项来指定端口。 - 使用
rsync
命令rsync
是一个非常强大的文件同步工具,它可以更高效地拷贝文件,因为它只传输发生变化的部分。
首先,确保你在两台服务器上都已经安装了rsync
。
使用以下命令:
rsync -avz -e ssh [email protected]:/usr/local/example-server/ [email protected]:/usr/local/example-server/
-avz
参数表示归档模式,保持文件属性,以及压缩数据。-e ssh
指定使用SSH为传输方式。
无论选择哪种方法,都需要确保有正确的权限来访问这两台服务器,并能够读取和写入相关目录。此外,在进行此操作时,为避免数据丢失或覆盖,建议首先在目标服务器上备份/usr/local/example-server
目录。
如果使用scp提示下面这个错误: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). lost connection
一般就代表鉴权失败了。
我们看到的这个错误信息表示SSH连接被拒绝。具体来说,它提到了四种可能的认证方法(publickey
、gssapi-keyex
、gssapi-with-mic
、password
),但是都没有被接受或工作。