Linux系统之间传输文件

SCP传输

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

两种模式,从远程主机向本地传输文件和从本地向远程主机传输文件。

  • 将文件传输到远程

    1
    scp 文件名 –用户名@计算机IP或者计算机名称:远程路径
  • 将远程文件传输到本地

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

可以添加命令参数 r 来进行目录拷贝

参数详解:

参数 描述
-a 尽可能将档案状态、权限等资料都照原状予以复制
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误
-C 使能压缩选项
-p 选择端口 . 注意 -p 已经被 rcp 使用
-4 强行使用 IPV4 地址
-6 强行使用 IPV6 地址

rsync差异化传输

支持断点续传,数据同步。

1
rsync -av /backup/ -e ssh root@192.168.1.110:/bak

a: archive归档模式,表示以递归方式传输文件,并保持所有文件属性,链接等,等于-rlptgoDrsync——remote sync。

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

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

它的主要特点有:

  • 可以镜像保存整个目录树和文件系统;

  • 可以很容易做到保持原来文件的权限、时间、软硬链接;无须特殊权限即可安装;

  • 可以增量同步数据,文件传输效率高,因而同步时间短;

  • 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接;

  • 支持匿名传输,以方便进行网站镜象等;

  • 加密传输数据,保证了数据的安全性;

管道传输(降低IO开销)

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

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

gunzip -c - 中的”-“表示接收从管道传进的sdtin