HW安全之路

  • 首页
  • 安全技术
    • 实战案例
  • 经验分享
  • 书籍分享
    • Web攻防
    • 恶意分析
    • 数据安全
    • 无线安全
    • 移动安全
    • 编程技术
    • 设备安全
    • 软件安全
    • 软技能
  • 网安课程
  1. 首页
  2. 经验分享
  3. 正文

14个堪称救命的rsync使用技巧,建议收藏!

2025年1月31日 128点热度 0人点赞

rsync 是 Linux 系统中功能强大且灵活的文件传输与同步工具之一。无论是本地备份、数据迁移还是远程文件同步,rsync 都以其高效性和丰富的选项成为首选工具。然而,要充分发挥 rsync 的潜力,掌握一些关键技巧和最佳实践至关重要。本文将为你详细介绍 rsync 的重要功能和使用技巧,助你轻松应对各种场景。


1. 理解 rsync 的基本语法

rsync 的基本语法如下:

rsync [选项] 源 目标
  • 源 可以是本地或远程的文件/目录。
  • 目标 同样可以是本地或远程的路径。

示例:

  • 本地到本地:
rsync -a /source/directory /destination/directory

本地到远程:

rsync -a /source/directory user@remote:/destination/directory

远程到本地:

  rsync -a user@remote:/source/directory /destination/directory

在深入高级选项之前,熟悉这个基本结构是使用 rsync 的第一步。


2. 默认情况下,rsync 不会递归复制目录

默认情况下,rsync 不会递归复制目录下的子文件或子目录,除非显式指定 -r(递归)或 -a(归档)选项。

示例:

rsync /source/ /destination/

以上命令不会复制 /source/ 下的子目录和文件。

解决方法:

  • 使用 -r
    或 -a
    选项:
  rsync -r /source/ /destination/
  • **推荐使用 -a**,因为它不仅包含递归复制(-r),还可以保留文件的权限、时间戳和符号链接等元数据。

示例对比:

  • 使用 -r 时,目标目录的文件权限可能会发生变化。
  • 使用 -a 时,原目录的文件权限、时间戳等都将被完整保留。

💡 小贴士:如果需要保留文件结构和元数据,**务必使用 -a**。


3. 明智地使用路径中的斜杠(/)

路径末尾的斜杠(/)会影响 rsync 的行为,因此需要特别注意。

  • 没有斜杠:复制整个源目录及其内容到目标目录。
rsync -a /source /destination

结果:/destination/source

带有斜杠:仅复制源目录的内容到目标目录。

 rsync -a /source/ /destination

结果:/destination/*source 下的所有内容*

💡 提示:在运行命令之前,确保弄清是否需要斜杠,以避免出现嵌套目录的意外结果。


4. 使用 -v 查看详细输出

在执行 rsync 时,添加 -v(verbose)选项可以查看详细信息,包括哪些文件被处理。这对于监控进度和排查问题非常有用。

rsync -av /source /destination

如果需要更详细的输出,可以使用 -vv。


5. 使用 --dry-run 模拟执行

为了避免对数据造成意外更改,可以使用 --dry-run 选项模拟命令的执行过程。

rsync -a --dry-run /source /destination

通过该选项,你可以看到哪些文件会被复制、删除或更新,而不会实际执行操作。

💡 推荐:在执行复杂命令或处理关键数据时,始终先运行 --dry-run 检查潜在影响。


6. 使用 --progress 查看传输进度

在传输大文件或目录时,使用 --progress 选项查看操作进度,包括传输速度和剩余时间估计:

rsync -a --progress /source /destination

7. 使用 -z 进行压缩(适用于远程传输)

在远程传输时,添加 -z(压缩)选项可以减少传输数据量,尤其适用于网络连接较慢的场景:

rsync -az /source user@remote:/destination

💡 注意:压缩对于传输日志文件、压缩包等大文件特别有效。


8. 谨慎使用 --delete

--delete 选项会删除目标目录中不存在于源目录的文件,用于保持目标目录与源目录的完全一致。

rsync -a --delete /source/ /destination/

⚠️ 警告:误用该选项可能导致数据丢失。运行前建议使用 --dry-run 预览更改:

rsync -a --delete --dry-run /source/ /destination/

9. 使用 --exclude 排除特定文件或目录

如果你不想同步某些文件或目录,可以使用 --exclude 选项:

rsync -a --exclude="*.tmp" --exclude="backup/" /source/ /destination/

对于复杂的排除规则,可以使用排除文件:

rsync -a --exclude-from='exclude.txt' /source/ /destination/

exclude.txt 文件中列出需要排除的文件或目录模式。


10. 使用 SSH 进行安全传输

在远程传输文件时,使用 SSH 确保安全性:

rsync -a -e ssh /source/ user@remote:/destination

或更简洁的写法:

rsync -a user@remote:/source /destination

11. 限制带宽使用:--bwlimit

在共享或慢速网络中,可以使用 --bwlimit 限制 rsync 的带宽占用:

rsync -a --bwlimit=1000 /source user@remote:/destination

💡 说明:单位为 KB/s,例如 1000 表示 1 MB/s。


12. 使用 --partial 断点续传

如果传输被中断,添加 --partial 选项可以从已完成的部分继续传输,避免重新传输整个文件:

rsync -a --partial /source user@remote:/destination

结合 --progress 使用,可以更方便地查看进度:

rsync -a --partial --progress /source /destination

13. 记录传输日志

对于长时间运行或自动化任务,记录日志非常有用:

rsync -a --log-file=/path/to/logfile.log /source /destination

通过日志可以查看传输结果或排查问题。


14. 使用 Cron 定期备份

通过 Cron 定时运行 rsync 命令,实现自动化备份任务。例如,每天午夜执行备份:

  1. 打开 crontab 编辑器:
crontab -e

添加以下行:

   0 0 * * * rsync -a /source/ /backup/ > /path/to/backup.log 2>&1

总结

rsync 是一个强大的文件同步工具,但要用好它,需要深入理解它的选项和行为。通过本文介绍的技巧,例如使用 --dry-run 预览结果、正确处理路径斜杠、谨慎使用 --delete 选项,以及结合 -z、--progress、--partial 等功能,你可以更高效、安全地完成文件传输和备份任务。

最后,强烈建议先在非关键数据上测试命令,确保结果符合预期,再应用到重要数据。祝你使用 rsync 顺利无忧!

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2025年1月31日

vlang

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月

分类

  • Web攻防
  • 安全技术
  • 实战案例
  • 恶意分析
  • 数据安全
  • 未分类
  • 经验分享
  • 软技能

COPYRIGHT © 2025 HW安全之路. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang