[linux]两台Linux服务器之间传输文件的四种方法

两台Linux服务器之间传输文件的四种方法

在日常服务器租用中,有时需要将文件从一台服务器传到另一台服务器,下面给大家介绍四种linux服务器之间传输文件方式。

1. scp

【优点】简单方便,安全可靠;支持限速参数

【缺点】不支持排除目录

【用法】

scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。

命令格式:

scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>

举例:

scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下

scp work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下

scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

scp -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名

scp -r -v /home/work/sourcedir work@www.myhost.com:/home/work/ #显示详情,加-v参数

2. rcp

【概述】

目标主机需要事先打开rcp功能,并设置好rcp的权限:把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。

3. wget

【优点】简单方便,支持排除目录,支持限速参数 【缺点】只能从远程机器将文件或文件夹下载到本地,并且远程机器需要支持ftp服务(例如启动proftpd);参数较多,使用上比scp复杂

【用法】

wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。

命令格式:

wget [参数] ftp://<目标机器ip或主机名>/<文件的绝对路径> #proftpd格式

举例:

wget ftp://192.168.0.10//home/work/source.txt #从192.168.0.10上拷贝文件夹source.txt

wget ftp://www.myhost.com//home/work/source.txt #使用主机名

wget -nH -P /home/work/ ftp://www.myhost.com//home/work/source.txt #指定本地保存路径,使用参数“-P 路径”或者“--directory-prefix=路径”;-nH, --no-host-directories 不创建主机目录

wget -r -l 0 -nH -P /home/work/ ftp://www.myhost.com//home/work/sourcedir #递归下载sourcedir目录,使用参数-r;参数-l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷).

wget --cut-dirs=3 -r -l 0 -nH -P /home/work/ ftp://www.myhost.com//home/work/sourcedir #-参数-cut-dirs=NUMBER 忽略 NUMBER层远程目录,本例中将myhost上的sourcedir目录保存到本地的work目录下。

wget --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /home/work/ ftp://www.myhost.com//home/work/sourcedir #-参数--limit-rate=RATE 限定下载输率

wget --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /home/work/ -X /home/work/sourcedir/notincludedir ftp://www.myhost.com//home/work/sourcedir #排除路径使用-X参数

wget -q --limit-rate=200k --cut-dirs=3 -r -l 0 -nH -P /home/work/ -X /home/work/sourcedir/notincludedir ftp://www.myhost.com//home/work/sourcedir #参数-q表示安静模式,无输出;默认是-v,冗余模式

4. rsync

【优点】功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。

【缺点】暂无

【用法】

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync。它的操作方式和scp和相似,但是比scp强大很多。使用双冒号分割主机名和文件路径时,是使用rsync服务器,这里不做介绍。

命令格式:

rsync [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>

举例:

rsync /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下

rsync work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下

rsync work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下

rsync -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数

rsync -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名

rsync -r -v /home/work/sourcedir work@www.myhost.com:/home/work/ #显示详情,加-v参数

rsync -r -v --exclude sourcedir/notinclude /home/work/sourcedir work@www.myhost.com:/home/work/ #排除子目录,注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则匹配不上,就不会被排除掉。

  • 18
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答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服务器之间的免密传输文件了。这种方法提供了更高的安全性,同时减少了每次传输文件时需要手动输入密码的麻烦。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FL1768317420

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值