如何同步目录并保留权限时间戳?

什么是 rsync?

rsync(Remote Sync)是 Linux/Unix 系统的核心文件同步工具,通过差异算法仅传输修改部分,比传统复制(如 scp)快 10 倍以上,它支持断点续传、压缩传输、权限保留,是备份、迁移和部署的工业级标准。


基础命令结构

rsync [选项] 源路径 目标路径
  • 源路径:待传输的文件/目录(如 /home/user/docs/
  • 目标路径:接收位置(如 backup@192.168.1.10:/backup/

本地文件传输(同服务器)

# 仅同步新文件(不覆盖已存在文件)
rsync -avu /data/ /archive/

参数解析

  • -a:归档模式(保留权限、属性)
  • -v:显示传输详情
  • -u:跳过目标端更新的文件

远程服务器传输(SSH 协议)

推送到远程服务器(本地 → 远程)

rsync -avz -e "ssh -p 2222" ~/project/ user@remote-ip:/server/path/

拉取远程文件(远程 → 本地)

rsync -avz user@remote-ip:/logs/ /local/backup/

关键参数

  • -z:压缩传输(节省带宽)
  • -e "ssh -p 2222":指定 SSH 端口(默认 22 可省略)

高级场景操作

排除特定文件

rsync -av --exclude='*.tmp' --exclude='cache/' /data/ remote:/backup/

删除目标端多余文件(保持严格同步)

rsync -av --delete /source/ /target/  # 慎用!目标端多余文件将被删除

限速传输(避免带宽占满)

rsync -avz --bwlimit=1000 /videos/ remote:/media/  # 限速 1000 KB/s

安全与故障处理

  1. SSH 密钥认证(免密码):
    # 生成密钥对
    ssh-keygen -t ed25519
    # 复制公钥到远程服务器
    ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-ip
  2. 断点续传
    rsync -av --partial /large-file.iso remote:/storage/
  3. 校验文件完整性
    rsync -avc /critical-data/ remote:/backup/  # -c 基于校验和检测变更

真实案例演示

场景:将本地网站代码同步到生产服务器,排除临时文件,保留软链接。

rsync -avzL --exclude '.git' --exclude 'tmp/' \
  -e "ssh -p 2022" ~/webapp/ deploy@prod-server:/var/www/
  • -L:同步软链接指向的实际文件
  • \:命令换行符(提高可读性)

注意事项

  1. 路径斜杠陷阱
    • /data/ → 同步目录到目标端
    • /data → 同步目录本身到目标端
  2. 权限问题
    • sudo rsync 同步系统文件
    • 目标路径需有写入权限
  3. 首次同步建议
    • 先加 -n 参数模拟操作(如 rsync -avn),确认无误后执行

rsync 凭借其增量传输、可靠性强、功能丰富的特性,成为运维工程师和数据管理员的必备工具,掌握基础命令后,可通过组合参数应对复杂场景,建议在日常备份中实践验证。

引用说明基于 rsync 官方文档(https://rsync.samba.org/)及 Linux 手册页(man rsync),并融合了运维场景下的最佳实践,技术细节已通过 Ubuntu 22.04 和 CentOS 7 环境实测验证。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9470.html

(0)
酷番叔酷番叔
上一篇 2025年7月31日 18:02
下一篇 2025年7月31日 18:17

相关推荐

  • 还在手动配置环境吗?

    如何通过命令行安装 Node.js:详细指南Node.js 是构建现代 Web 应用的核心工具,通过命令行安装是最直接高效的方式,本指南涵盖 Windows、macOS 和 Linux 三大系统,所有步骤均经过官方文档验证,安装前准备检查现有版本(避免冲突)终端执行:node -v # 检查 Node.jsnp……

    2025年7月17日
    22200
  • 安全控制系统无法连接,究竟是什么原因导致的?

    安全控制系统作为工业生产、关键基础设施及日常生活中的核心防护屏障,其稳定运行直接关系到人员安全、设备完好性与生产连续性,“安全控制系统无法连接”这一故障现象时有发生,轻则导致系统功能降级,重则引发安全风险与生产停滞,本文将从问题现象、原因分析、排查步骤及预防措施等方面,系统阐述该故障的应对逻辑,为相关技术人员提……

    2025年11月14日
    13200
  • MySQL退出命令行怎样避免数据丢失?

    标准退出方法使用SQL退出命令在MySQL提示符 mysql> 后输入以下任一命令(大小写不敏感):exit;quit;\q说明:分号 是SQL语句结束符,但退出命令可省略(输入后直接按回车即可),执行后返回Linux终端,连接立即关闭,使用快捷键退出Ctrl + D(EOF信号):在空命令行中按下,直接……

    2025年7月15日
    20600
  • CMD删文件快但会误删?

    打开命令提示符Windows 10/11:按 Win + R 输入 cmd → 回车,或搜索“命令提示符” → 右键选择“以管理员身份运行”(需系统权限时),其他系统:在文件资源管理器地址栏输入 cmd → 回车(直接定位当前路径),基础命令与参数命令作用常用参数del删除文件/f(强制删除只读文件)/s(递归……

    2025年6月16日
    21600
  • 安全主管的核心职责与挑战是什么?

    安全主管在现代企业运营中扮演着至关重要的角色,其职责不仅涉及物理环境的安全防护,更涵盖了信息安全、应急响应、合规管理等多个维度,作为企业安全体系的构建者和守护者,安全主管需要具备全面的专业知识、敏锐的风险洞察力以及高效的团队管理能力,以确保企业在复杂多变的环境中稳定运行,核心职责与工作范畴安全主管的工作核心是……

    2025年12月1日
    14400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信