Linux主机之间传输文件的几种方法:
scp
传输
scp传输速度较慢,但使用ssh通道保证了传输的安全性。
- 将本地文件拷贝到远程:
scp 文件名 用户名@计算机IP或者计算机名称:远程路径
- 从远程将文件拷回本地:
scp 用户名@计算机IP或者计算机名称:文件名 本地路径
-
rsync
差异化传输(支持断点续传,数据同步)
yum -y install rsync
rsync -a source destination
-r表示递归
-a参数可以替代-r,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。
-n参数模拟命令执行的结果,并不真的执行命令
要使得目标目录成为源目录的镜像副本,则必须使用--delete参数,这将删除只存在于目标目录、不存在于源目录的文件。
--include 包含文件
--exclude 排除文件
rsync -av --include="*.txt" --exclude='*' source destination
上面命令指定同步时,排除所有文件,但是会包括 TXT 文件
- 将本地内容,同步到远程服务器
rsync -av source username@remote_host:destination
- 也可以将远程内容同步到本地。
rsync -av username@remote_host:source destination
- 管道传输(降低IO开销)
gzip -c source | ssh username@remote_host "gunzip -c - > destination"
对sda.img使用gzip压缩,-c参数表示输出到stdout,即通过管道传送
gunzip -c - 中的"-"表示接收从管道传进的sdtin
- nc传输(一种网络的数据流重定向)
nc所做的就是在两台电脑之间建立tcp或udp链接,并在两个端口之间传输数据流,是一种网络的数据流重定向。
-
收方(服务端)(假设IP是: 192.168.XXX.XXX)
监听一个端口,把接收数据重定向(或者说保存)到文件
nc -l 7777 > recv.txt
-
发方(客户端)
请求向服务端发送文件,文件输入到这个服务端的端口
nc 192.168.XXX.XXX 7777 < send.txt
-
如果没有反应,可以测一下端口是不是通的,命令是:
telnet 192.168.XXX.XXX 7777
服务端先起服务,客户端再使用服务.
- 建立文件服务器
通过建立文件服务器,然后通过网络挂载的方式传输,适用于经常性的拷贝。