我目前正在从 Ubuntu 20.04 迁移到 Fedora 34。到目前为止,以下备份脚本运行良好:
rsync \
-avixXEH \
--stats \
--delete \
--numeric-ids \
--log-file="$LOG_FILE" \
--link-dest "$LATEST" \
--exclude '/some/exclude' \
admin@nas:/{a,b,c} \ # source is remote nas (via ssh)
"$TARGET" \ # $TARGET is ext. USB disk on fedora OS desktop
Run Code Online (Sandbox Code Playgroud)
不幸的是,在 Fedora 上,每个复制的路径现在都会导致警告,污染日志:
rsync_xal_set:lremovexattr(“/my/path/file.zPXUj1”,“security.selinux”)失败:权限被拒绝(13)
这似乎是 rsync 想要保留/删除扩展属性 ( ) 和 SELinux 的问题-X
。
红帽 Michal Ruprich最近引用的一句话:
RHEL5 中已通过抑制错误消息“修复”了此问题,使其不会中断正在运行的系统。[...]
“当源文件中的扩展属性已被删除时,rsync-2.6 不会删除目标文件的扩展属性。我们称其为 bug。
rsync-3.0 正确尝试删除已擦除的扩展属性。
如果目标系统上存在 selinux,则 rsync 无法删除文件的安全上下文,并输出上述错误。因此,除了信息性错误消息之外,2.6 和 3.0 的行为是相同的。”
使用rsync …