侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 194 篇文章
  • 累计创建 70 个标签
  • 累计收到 7 条评论

文件传输常用工具对比

liveJQ
2023-10-01 / 0 评论 / 0 点赞 / 1,529 阅读 / 1,224 字

scp

特点:安全易用,适用于单文件小容量传输。

例子:将主机A的 file.txt 文件传输到主机B的 dir 目录。

scp /主机A/file.txt root@192.168.1.1:/主机B/dir

例子:将主机A的 dir01 目录(包括所有子目录和文件)传输到主机B的 dir02 目录下,目标实际效果为/主机B/dir02/dir01

scp -Cpr ./主机A/dir01 root@47.98.248.151:/主机B/dir02
  • -C:压缩传输(大写)。
  • -p:保持与源文件相同的修改和访问时间等(小写)。
  • -r:递归复制目录。

若对端主机默认端口为非 22 端口,则可以按如下参数指定端口。

scp -P 2222 /主机A/file.txt root@192.168.1.1:/主机B/dir

rsync

特点:支持断点续传,适用于多文件多目录大容量传输。

例:1:将主机A中 dir01 目录下的内容同步到主机B中的 dir01 目录(会覆盖主机B的旧文件)。

rsync -aPhz /主机A/dir01/ root@192.168.1.1:/主机B/dir01

这里需要注意最后的斜杠,加与不加是有区别的。前面加了表示目录下的内容,后面不加表示目录,即意为将内容传到目录下。

  • -a:归档模式,相当于-rlptgoD,即递归目录、保留符号链接、保持权限和修改时间、保持所有者(仅超级管理员)和组、保持设备文件和特殊文件。
  • -P:采用分片传输,保留已传输文件,以便断点续传。
  • -h:单位表示可读性。
  • -z:压缩传输(当发现传输速度低于磁盘读写正常速度时,请去掉这个参数)。

若对端主机默认端口为非 22 端口,则可以按如下参数指定端口。

rsync -avPhz -e 'ssh -p 2222' /主机A/dir01/ root@192.168.1.1:/主机B/dir01

例子2:当需要同步的文件有特殊权限时,可以用下面这个

rsync -aAXP --info=progress2 /media/disk1/ /media/disk2/
  • -A:保留 ACL。
  • -X:保留扩展属性(xattr)
  • --info=progress2:是 rsync 3.x 提供的一个总体进度显示参数

其它一些需要多加注意的参数:

  • -H:只有源数据本身有大量硬链接时才需要。
  • -c:会读取每个文件计算校验和,对于几 TB 数据通常没有必要。
  • -z:适合网络传输,本地磁盘复制反而增加 CPU 开销。
  • --delete:删除目标目录中源目录不存在的文件。
  • -n 或 --dry-run:仅模拟,不实际修改。

nc

特点:适用于小文件大容量传输。

源机器 192.168.1.1

tar -cf - -C /data/dir01 . | pigz | nc -l 9876

目标机器 192.168.1.2

nc 192.168.1.1 9876 | pigz -d | tar -xf - -C /data/dir02

相关文章

  1. pigz命令 – 多线程的解压缩文件
  2. 使用tar+pigz+ssh实现大数据的高效传输
  3. Linux下nc、tar、pigz主机间传输文件
0

评论区