Linux rsync 命令,文件同步增量传输

rsync 是一个非常强大的文件同步工具,可以用于本地和远程文件之间的增量传输。它支持多种文件系统操作,包括复制、删除和移动文件等,并且可以通过压缩和加密来提高传输效率和安全性。

安装

在大多数 Linux 发行版中,rsync 可以通过包管理器轻松安装。

Debian/Ubuntu

CentOS/RHEL

Fedora

Arch Linux

基本用法

rsync 的基本命令格式如下:

示例:本地文件同步

将目录 /home/user/source 同步到 /home/user/destination

示例:从远程服务器同步文件

将远程服务器 user@remote_host:/path/to/remote_dir 同步到本地 /home/user/local_dir

示例:从本地同步文件到远程服务器

将本地 /home/user/local_dir 同步到远程服务器 user@remote_host:/path/to/remote_dir

选项详解

rsync 提供了丰富的选项来控制文件的传输行为。以下是一些常用的选项及其功能说明。

-a, --archive

归档模式,表示递归传输并保持文件属性,相当于同时设置了 -rlptgoD 选项。

  • -r, --recursive:递归处理子目录。
  • -l, --links:保留符号链接。
  • -p, --perms:保留文件权限。
  • -t, --times:保留文件修改时间。
  • -g, --group:保留文件所属组。
  • -o, --owner:保留文件所有者。
  • -D:保留设备文件和特殊文件。

-v, --verbose

详细模式,显示传输过程中的详细信息。

-z, --compress

在传输过程中对数据进行压缩。

-P

等于 --partial --progress,允许断点续传并显示传输进度。

-u, --update

仅更新比目标文件新的源文件。

-b, --backup

创建备份文件,备份文件默认保存在源文件同名目录下的 .bak 文件中。

--delete

删除目标目录中源目录不存在的文件。

--exclude

排除指定的文件或目录,例如:

以上命令会同步 /home/user/source/home/user/destination,但不会同步任何扩展名为 .log 的文件。

--include

仅包含指定的文件或目录,通常与 --exclude 结合使用。

--dry-run 或 -n

模拟运行,不实际执行文件传输,仅显示将要执行的操作。

--bwlimit

限制传输速度,单位为 KB/s。例如:

以上命令将传输速率限制为 500 KB/s。

高级用法

使用 SSH 进行安全传输

通过 -e 选项指定使用 SSH 进行传输,确保数据的安全性:

同步整个文件系统

有时需要同步整个文件系统,可以使用 --one-file-system 选项防止跨文件系统挂载点同步:

使用自定义压缩算法

rsync 支持多种压缩算法,可以通过 --compress-choice 选项指定:

并行传输

rsync 支持多线程传输,通过 --bwlimit--progress 选项配合使用可以实现更高效的传输:

使用 Rsync API

rsync 还提供了编程接口,可以通过 C、Python 等语言调用 rsync 库实现自动化同步任务。

使用 Rsyncd.conf 配置

Rsync 可以配置为守护进程,通过 rsyncd.conf 文件进行全局配置,适用于需要频繁同步的情况:

总结

rsync 是一个功能强大且灵活的文件同步工具,适用于各种场景下的文件传输需求。通过合理利用其丰富的选项和功能,可以大大提高文件传输的效率和安全性。希望本章的内容能帮助你更好地掌握 rsync 的使用方法。

上一篇: fsck 命令
下一篇: lprm 命令
纠错
反馈