rsync 同步报 “some files/attrs were not transferred” 的权限/时间戳坑

13次阅读

rsync警告属主、权限或时间戳设置失败属正常现象,根源在目标端权限不足、挂载选项限制(如NFS时间禁用、FAT不支持unix时间戳)或文件系统只读;应通过sudo提权、调整挂载参数、跨平台加–no-owner/–no-group或-vv日志定位具体错误。

rsync 同步报 “some files/attrs were not transferred” 的权限/时间戳坑解决方法:用 sudo rsync -a …(注意:源端也需有对应读取权限)

时间戳写不进去?看文件系统是否只读或挂载限制

即使有写权限,某些挂载场景也会阻止时间戳更新:

  • NFS 挂载时用了 noatimerelatime,不影响,但若服务端禁用了 time 更新(如某些 nas 固件限制),mtime/ctime 就设不上
  • 挂载参数含 ro(只读)或 nosuid,nodev,noexec 一般不影响时间戳,但 noatime 会影响 atime,strictatime 才保证全量时间戳可写
  • ext4/xfs 本地盘通常没问题;但 FAT/exFAT/NTFS(通过 ntfs-3g 挂载)根本不支持 Unix 时间戳语义,必然失败

想静默这个提示?合理过滤而非硬压

不建议用 –quiet 直接掩盖,应先确认哪些元数据真没必要保留:

  • 若只要文件内容一致,改用 -r –times(仅同步时间戳)+ –chmod 控制权限,避开属主问题
  • 跨平台同步(如 linuxmacOS APFS 或 windows WSL2)时,加 –no-owner –no-group 明确放弃属主属组
  • –omit-dir-times 跳过目录时间戳(某些 NAS 对目录 mtime 敏感)

验证到底卡在哪一步?加 -vv 看详细日志

运行 rsync -avv –delete source/ dest/,输出末尾会有类似:

rsync: chown “/dest/file.txt” failed: Operation not permitted (1)
rsync: failed to set times on “/dest/dir”: Operation not permitted (1)

根据具体报错码(如 Operation not permittedInvalid argument)定位是权限、挂载限制还是文件系统不支持。

text=ZqhQzanResources