You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

rsync未按预期复制文件:EC2到本地增量同步失败排查

排查rsync仅输出未执行增量同步的问题

嘿,我来帮你捋捋这个rsync只输出不干活的问题!这种情况我在日常运维里碰到过好多次,大概率是命令参数、路径或者权限的小细节没处理对,咱们一个个排查:

  • 误加了模拟运行参数
    rsync有个--dry-run(简称-n)参数,作用是模拟同步过程、输出要执行的操作但不实际修改文件。先检查你的命令里有没有加这个参数——如果有的话,删掉它就能让rsync真正执行同步了。比如你可能写了:

    rsync -avn ec2-user@你的EC2IP:/var/www/html/production/wp-content/uploads/ /users/myusername/dev/myproject/wp-content/uploads/
    

    把-n去掉就好。

  • 路径末尾的斜杠踩坑
    rsync对路径末尾的/敏感度拉满:

    • 源路径加/:同步目录内的所有文件到目标路径
    • 源路径不加/:会把整个源目录复制到目标路径下
      虽然这个不会直接导致不执行,但如果你的输出里全是“创建目录”的信息,那大概率是路径写法不对。确保源路径是/var/www/html/production/wp-content/uploads/(带末尾斜杠),目标路径同理。
  • 本地目录权限不足
    检查本地的/users/myusername/dev/myproject/wp-content/uploads/有没有写入权限。如果rsync没有权限写入本地目录,它只会输出要同步的文件列表,但实际无法完成复制。你可以先在这个目录里手动创建一个测试文件验证权限,必要时用sudo运行rsync(不过尽量用自己的用户权限,避免后续权限混乱)。

  • SSH连接的隐性问题
    虽然rsync输出了内容,但有可能是SSH连接在等待认证却没显示出来——比如你没配置免密登录,rsync在后台等你输密码,但你看不到提示。先测试SSH连接:ssh ec2-user@你的EC2IP,确保能正常登录,最好配置免密登录(把本地公钥传到EC2的~/.ssh/authorized_keys里),这样rsync能顺利完成传输。

给你一个标准的增量同步命令示例,你可以参考调整:

rsync -avz --delete ec2-user@你的EC2IP:/var/www/html/production/wp-content/uploads/ /users/myusername/dev/myproject/wp-content/uploads/
  • -a:归档模式,包含递归同步、保留文件权限/时间戳等,是增量同步的核心参数
  • -z:压缩传输,适合跨服务器同步大文件,节省带宽
  • --delete:可选参数,删除本地存在但EC2端已删除的文件,保持两端完全一致(不需要的话可以去掉)

内容的提问来源于stack exchange,提问作者JasonGenX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:21:10