Linux服务器远程文件拷贝两种方法介绍

发布时间 2023-10-26 11:24:21作者: 夏威夷8080
假设有两台linux服务器,如何将111.22.3.64上的/usr/local/example-server目录下的所有文件和目录拷贝到55.166.77.246的/usr/local/example-server目录下?
 

要从一个Linux服务器拷贝文件到另一个Linux服务器,可以使用scp命令或rsync命令。以下是如何使用这两个命令来完成上述操作:

  1. 使用scp命令

    首先,确保你已经在两台服务器上安装了openssh-clients(如果你使用的是RedHat/CentOS系列的Linux)或者openssh-client(如果你使用的是Debian/Ubuntu系列的Linux)。

    使用以下命令将文件从111.22.3.64拷贝到55.166.77.246

    scp -r root@111.22.3.64:/usr/local/example-server/* root@55.166.77.246:/usr/local/example-server/

    注意:此命令默认将使用SSH的默认端口22。如果你的SSH使用了不同的端口,你需要使用-P选项来指定端口。

  2. 使用rsync命令

    rsync是一个非常强大的文件同步工具,它可以更高效地拷贝文件,因为它只传输发生变化的部分。

    首先,确保你在两台服务器上都已经安装了rsync

    使用以下命令:

    rsync -avz -e ssh root@111.22.3.64:/usr/local/example-server/ root@55.166.77.246:/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连接被拒绝。具体来说,它提到了四种可能的认证方法(publickeygssapi-keyexgssapi-with-micpassword),但是都没有被接受或工作。