我正在设置一个新的内部备份策略,其中我的 LAN 上的多个主机将备份到运行 rsync 守护程序的单个主机上。
我仍处于这项工作的早期阶段,在与 rsync 守护进程相同的主机上备份目录树,并遇到了一个严重的问题。Rsync 未保留文件的所有者或组。
运行 rsync 守护进程的主机是运行 macOS 10.13.4 的 Mac Pro。
它安装了 Homebrew V1.6.6。
我使用 Homebrew 安装了 rsync V3.1.3。rsync
守护进程以 root 身份运行(ls -Al 显示 uid 为 0)。
日志文件中没有错误。
rsyncd.conf 文件:
# /usr/local/etc/rsyncd.conf
[global]
uid = 0
log file = /Volumes/Data01/Projects/DPLHInternal/Backup/rsync.log
max verbosity = 3
[users]
comment = Mac user directories
path = /Users
read only = true
exclude = .Trash
rsync 命令(作为 bash 脚本):
#!/usr/bin/env bash
# rsync_local.sh
rsync \
--stats \
--human-readable \
--archive \
--acls \
--executability \
--owner \
--group \
--numeric-ids \
--perms \
--xattrs \
rsync://localhost/users/ /Volumes/Data03/Backups/Rsync/Dave/users
在 /Users 目录中有一个名为 Guest 的子目录。此文件夹及其内容归 Guest:_guest (201:201) 所有。
运行 rsync 命令后,目标目录及其内容归 dpatterson:admin 所有(501:80,dpatterson 是我的用户名)。
我尝试过使用和不使用 --numeric-ids。
我尝试过以 root 身份运行 rsync 命令。复制的文件夹及其内容归 root 所有。
我尝试过使用和不使用明确指定 --owner --group。
但一切都无济于事。
我想我一定是忽略了一些相当基本的东西。
短暂性脑缺血发作
答案1
尝试直接从命令行运行它,就像root
这个命令一样
rsync -avzH
这有效地完成了您在脚本中尝试执行的操作,但它更简洁,并且还保留了硬链接。如果它直接从命令行运行,也许它会帮助您调试脚本中发生的事情。