233

问答题 233 /413

请问linux两台机器之间传文件,用的什么端口

参考答案

参考回答:

Linux主机之间传输文件的几种方法:

1、scp传输

scp传输速度较慢,但使用ssh通道保证了传输的安全性。

命令:

将本地文件拷贝到远程:

scp 文件名 –用户名@计算机IP或者计算机名称:远程路径

从远程将文件拷回本地:

scp –用户名@计算机IP或者计算机名称:文件名 本地路径

2、rsync差异化传输(支持断点续传,数据同步)

rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync”算法,可以将一个客户机和远程文件服务器之间的文件同步,也可以在本地系统中将数据从一个分区备份到另一个分区上。

如果rsync在备份过程中出现了数据传输中断,恢复后可以继续传输不一致的部分。rsync可以执行完整备份或增量备份。

3、管道传输(降低IO开销)

gzip -c sda.img | ssh root@192.168.1.110 "gunzip -c - > /image/sda.img"

#对sda.img使用gzip压缩,-c参数表示输出到stdout,即通过管道传送

#gunzip -c - 中的"-"表示接收从管道传进的sdtin

4、nc传输(一种网络的数据流重定向)

nc所做的就是在两台电脑之间建立tcp或udp链接,并在两个端口之间传输数据流,是一种网络的数据流重定向。

使用dd结合nc命令网络克隆磁盘分区:

主机:

dd if=/dev/vda | gzip -c | nc -l 50522

待恢复机:

nc 192.168.215.63 50522 | gzip -dc | dd of=/dev/sda

dd命令克隆/dev/vda磁盘,并使用gzip压缩,把数据流重定向到本机50522端口,待恢复机上使用nc连接主机50522端口,就能接收主机50522端口的比特数据流,然后使用gzip解压缩,并恢复到/dev/sda磁盘。

dd命令读取的是磁盘扇区,所以不论磁盘文件系统,或者分区表,磁盘MBR信息,dd都能够复制,可以使用bs,count参数控制要克隆的大小

5、建立文件服务器

通过建立文件服务器,然后通过网络挂载的方式传输,适用于经常性的拷贝。