Linux实现两台服务器之间的文件传输

Linux实现两台服务器之间的文件传输

说明:最近刚好需要将文件一台服务器传输到另外一台服务器(都是阿里的服务器),由于文件有点大,通过xftp下载到本地,再从本地上传的话,就会比较费事。于是,可以通过scp命令直接传输。

具体命令如下:

scp -r "需要传输的文件" "接收文件服务器的用户名"@"接收服务器的ip":"文件接收路径"

//具体如下
scp -r /usr/local/testFile/* root@100.10.20.30:/root/

当你按下回车之后,会要求输入接收文件服务器的登录密码。

说明

  1. -r 表示文件夹本身(testFile)也会传输过去,不加的话,只会传输文件夹下的文件,不会传输文件夹本身;
  2. /usr/local/testFile/* 表示要传输的文件内容是testFile目录下的所有内容
  3. root 表示接收文件的服务器的登录名;
  4. 100.10.20.30 表示接收文件的服务器ip,这里是随便写的,实际根据具体情况来;
  5. /root/ 表示testFile文件将会被传输到root目录下,如果你要传输到其他目录,修改/root/即可。

如果文件太多了,可以将scp程序放到后台执行:

  1. ctrl + z 暂停任务;
  2. jobs 查看任务,会返回任务编号a以及具体内容;
  3. bg %a 后台继续执行该任务,a 是第2步返回的,不是瞎填的;
  4. 再次 jobs 可以查看任务处于执行状态 Running

特别说明: 虽然是后台运行了,但是假如你关掉xshell窗口的话,该任务还是会停止,很坑得啊有没有!所以,我选择了tmux工具来执行该文件复制操作后台运行 -> tmux的简单使用

### 回答1: 在Linux服务器之间实现免密文件可以使用SSH(Secure Shell)协议和两台服务器之间的密钥认证。 首先,在服务器A上生成公钥和私钥对。可以使用以下命令生成: ``` ssh-keygen -t rsa ``` 这将在~/.ssh目录下生成id_rsa和id_rsa.pub文件,其中id_rsa为私钥,id_rsa.pub为公钥。 然后,在服务器B上创建一个.ssh目录,并将服务器A生成的公钥复制到服务器B的~/.ssh/authorized_keys文件中。 ``` mkdir ~/.ssh chmod 700 ~/.ssh vim ~/.ssh/authorized_keys 将服务器A生成的公钥复制到authorized_keys中保存退出。 ``` 接下来,将服务器B的公钥复制到服务器A的authorized_keys中,以实现双向的免密输。 最后,确保服务器A和服务器B的.ssh目录的权限设置为700,authorized_keys文件的权限设置为600,以确保只有拥有者有读写权限。 现在,当从服务器A到服务器B文件时,就不再需要输入密码。可以使用以下命令: ``` scp file user@serverB:/path/to/destination ``` 其中,file是要输的文件,user是服务器B的用户名,serverB是服务器B的IP地址或域名,/path/to/destination是文件传输到服务器B的目标路径。 通过上述步骤,我们成功实现Linux服务器之间的免密文件。 ### 回答2: 在Linux服务器之间实现免密文件可以通过使用SSH密钥对来实现。下面是具体的步骤: 1. 在源服务器上生成SSH密钥对。可以使用`ssh-keygen`命令来生成密钥对,该命令会生成公钥和私钥文件。 2. 将公钥文件拷贝到目标服务器上。可以使用以下命令将公钥文件拷贝到目标服务器上: ``` ssh-copy-id -i <公钥文件> <目标服务器用户名>@<目标服务器IP地址> ``` 3. 输入目标服务器密码进行验证,然后公钥文件将被自动拷贝到目标服务器的`~/.ssh/authorized_keys`文件中。 4. 现在可以在源服务器上使用`scp`命令进行免密文件到目标服务器。 ``` scp <文件路径> <目标服务器用户名>@<目标服务器IP地址>:<目标路径> ``` 5. 这样,文件将被安全地输到目标服务器上,而无需再次输入密码。 注意:为了确保安全性,私钥文件应该妥善保管,并限制访问权限。此外,还可以通过禁用密码登录来进一步加强服务器的安全性。 ### 回答3: 在Linux服务器之间实现免密文件,可以通过使用SSH密钥对的方式来实现。 首先,需要在发送文件的服务器上生成一对SSH密钥(公钥和私钥)。这可以通过运行`ssh-keygen`命令来完成。在执行命令时,可以选择保存密钥的位置及密钥的名称。默认情况下,公钥和私钥会保存在用户的家目录的.ssh文件夹中。 然后,将公钥复制到接收文件的服务器上。可以通过运行以下命令将公钥复制到目标服务器: ``` ssh-copy-id username@remote_server ``` 其中,`username`是目标服务器的用户名,`remote_server`是目标服务器的IP地址或域名。在执行命令时,需要提供目标服务器的登录密码。 接下来,验证是否成功免密文件。可以通过运行以下命令来登录到目标服务器: ``` ssh username@remote_server ``` 这次登录时,将不会要求输入密码。 最后,可以使用`scp`命令在服务器之间进行免密文件。例如,要将本地文件`file.txt`输到目标服务器上: ``` scp file.txt username@remote_server:/path/to/destination ``` 其中,`/path/to/destination`是目标服务器上保存文件的路径。 通过上述步骤,就可以实现Linux服务器之间的免密文件了。这种方法提供了更高的安全性,同时减少了每次文件时需要手动输入密码的麻烦。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值