rsync高效文件传输工具

rsync是什么

  • rsync 是一款高效远程数据同步工具。
  • rsync 能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输量。(增量同步)
  • rsync 中的一项同类软件不常见的重要特性是每个目标的镜像只需发送一次。
  • rsync 可以拷贝/显示目录内容,以及拷贝文件,并可选压缩以及递归拷贝。
  • rsync 命令中,一个冒号走 ssh 协议,两个冒号走 rsync 协议

rsync与scp区别

  • 工作原理
    scp是基于SSH协议进行安全文件传输的,它在传输文件时,会将文件从源复制到目标,不论文件大小和修改时间是否改变。而rsync是另一种高效的文件复制工具,它只传输文件的差异部分,而非全部,这使得rsync在复制大文件或更新变化文件时更为高效。
  • 传输效率
    使用rsync进行文件传输相较于scp有更高的传输效率,因为rsync在复制过程中只传输文件的差异部分,而不是整个文件。
  • 安全性
    scp基于SSH协议,因此提供了较高的安全性保障。而rsync本身并未提供安全保障,如果使用rsync在公共网络上进行文件传输,建议使用ssh进行加密。
  • 符号链接支持
    rsync支持符号链接,而scp不支持。
  • 操作方式
    scp主要是通过命令行进行操作,rsync则可以通过命令行或者配置脚本来操作。

rsync命令

本地复制: 
  rsync [OPTION]  SRC  DEST

通过 ssh 访问远程机器:
  pull: rsync [OPTION]  USER@HOST:SRC  DEST
  push: rsync [OPTION]  SRC  USER@HOST:DEST

通过 rsync 守护进程访问远程机器:
  pull: rsync [OPTION]  USER@HOST::SRC  DEST
        rsync [OPTION]  rsync://USER@HOST:PORT/SRC  DEST           
  push: rsync [OPTION]  SRC  USER@HOST::DEST 
        rsync [OPTION]  SRC  rsync://USER@HOST:PORT/DEST
可使用 --dry-run 预演,避免误操作

rsync命令中的选项参数:
	a:归档模式,表示以递归的方式传输文件,并保持所有文件属性不变。
	v:详细模式,输出详细信息。
	p:保持文件权限。
	h:以人类可读的方式显示文件大小。
	r:表示递归模式。
	l:表示保留软链结。
	t:表示保持文件时间信息。
	g:表示保持文件属组信息。
	o:表示保持文件属主信息。

push推送

# ssh 方式推送单个文件到远程主机目录
rsync -v /tmp/1.txt zlh@dst_ip:/tmp/
# ssh 密码方式
sshpass -p {password} rsync /tmp/1.txt zlh@dst_ip:/tmp/

# 推送目录的所有文件到远程主机目录
rsync -av /tmp/ dst_ip:/tmp/
# 推送目录的所有文件到远程主机目录,并显示统计信息
rsync -avh --stats /tmp/ dst_ip:/tmp/

# 推送某个目录的所有文件到远程主机目录,并删除远程目录中多余的文件(及子目录)
rsync -av --delete /tmp/ dst_ip:/tmp/

# 递归删除 dst_ip::/tmp/test 目录下的所有文件,及 test 目录本身
rsync -av --delete --include=test/*** --exclude=* /tmp/empty/  dst_ip::/tmp/test
# 等价于
rsync -av --delete --include=test/ --include=test/** --exclude=* /tmp/empty/ dst_ip::/tmp/test

# 列出远程目录
rsync --list-only zlh@dst_ip:/directoryname/

# 删除单个文件
rsync -avpz --delete --include='1.txt' --exclude='*' ./ dst_ip::/tmp/test/ --dry-run

pull拉取

# rsync 协议
rsync -avPh --stats zlh@dst_ip::tmp/ /tmp
# ssh 协议
rsync -avPh --stats zlh@dst_ip:/tmp/ /tmp/

相关推荐

  1. rsync高效文件传输工具

    2023-12-08 00:20:06       55 阅读
  2. rsync+inotify-tools文件传输

    2023-12-08 00:20:06       38 阅读
  3. rsync同步/传输工具ssh使用方法

    2023-12-08 00:20:06       38 阅读
  4. 方便快捷传文件—搭建rsync文件传输服务器

    2023-12-08 00:20:06       34 阅读
  5. rsync文件同步

    2023-12-08 00:20:06       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 00:20:06       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 00:20:06       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 00:20:06       87 阅读
  4. Python语言-面向对象

    2023-12-08 00:20:06       96 阅读

热门阅读

  1. [MTK]安卓8 ADB执行ota升级

    2023-12-08 00:20:06       60 阅读
  2. elasticdump elasticsearch 数据迁移

    2023-12-08 00:20:06       59 阅读
  3. Spark低版本适配Celeborn

    2023-12-08 00:20:06       60 阅读
  4. 【编程技术】CUDA TencoreCore编程实例说明

    2023-12-08 00:20:06       56 阅读
  5. opencv常用函数表

    2023-12-08 00:20:06       53 阅读
  6. git 提交文件过大 解决办法

    2023-12-08 00:20:06       52 阅读
  7. fork使用git可视化管理工具

    2023-12-08 00:20:06       52 阅读
  8. 计算机网络——习题

    2023-12-08 00:20:06       47 阅读