帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  如何在 Linux 中使用 rsync 进行高效文件同步和备份

如何在 Linux 中使用 rsync 进行高效文件同步和备份

2025-12-19 17:46:56 136

如何在 Linux 中使用 rsync 进行高效文件同步和备份

Linux 系统管理和云计算环境中,文件同步和备份是日常运维的关键任务。rsync 是一个功能强大、灵活且高效的文件同步工具,它能够快速同步本地和远程文件,仅传输变化的部分,极大节省带宽和时间。本文将详细介绍 rsync 的基本用法、高级技巧和实际应用场景,帮助您掌握这一必备工具。

1. rsync 基础介绍

rsync(remote sync)的核心优势在于其增量传输算法,只传输源文件和目标文件之间的差异部分,而不是整个文件。这使得它在同步大文件或大量文件时特别高效。

基本语法

rsync [选项] 源路径 目标路径

2. 常用选项和参数

基本选项

· -v, --verbose:详细输出,显示同步过程

· -r, --recursive:递归同步目录

· -a, --archive:归档模式,等同于 -rlptgoD(保留权限、时间、所有者等)

· -z, --compress:传输时压缩数据

· -h, --human-readable:以人类可读格式输出

高级选项

· --delete:删除目标中存在而源中不存在的文件

· --exclude:排除指定文件或目录

· --include:包含指定文件或目录

· --progress:显示传输进度

· --dry-run:模拟运行,不实际传输

· --partial:保留部分传输的文件,便于断点续传

· -P:等同于 --progress --partial

3. 本地文件同步示例

同步目录到另一个位置

# 基本同步

rsync -av /source/directory/ /destination/directory/

 

# 同步并显示进度

rsync -avh --progress /home/user/documents/ /backup/documents/

 

# 同步并删除目标中多余的文件

rsync -av --delete /source/ /destination/

重要提示:源路径末尾的斜杠 /有不同含义:

· /source/directory/:同步目录内的内容

· /source/directory:同步目录本身及其内容

排除特定文件

# 排除指定文件类型

rsync -av --exclude='*.log' /source/ /destination/

 

# 排除多个文件类型

rsync -av --exclude='*.tmp' --exclude='*.bak' /source/ /destination/

 

# 从文件读取排除列表

rsync -av --exclude-from='/path/to/exclude-list.txt' /source/ /destination/

exclude-list.txt内容示例:

*.log

*.tmp

temp/

cache/

4. 远程文件同步

rsync 支持通过 SSH 协议进行安全的远程同步,这是其最强大的功能之一。

从本地同步到远程

# 同步到远程服务器

rsync -avz /local/path/ user@remotehost:/remote/path/

 

# 使用非标准SSH端口

rsync -avz -e 'ssh -p 2222' /local/path/ user@remotehost:/remote/path/

从远程同步到本地

# 从远程服务器同步

rsync -avz user@remotehost:/remote/path/ /local/path/

在远程服务器之间同步

# 通过本地中转同步两个远程服务器

rsync -avz user1@source_host:/source/path/ user2@dest_host:/dest/path/

 


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题:
XML 地图