在客户端:
rsync -x -r -t -v -o "nobody" -g "nogroup" --progress --delete -u --partial -s -e ssh /home/john/Calibre\ Library [email protected]:/media/Book
在服务器端:
clementine:/c/media/Book# ls -la
total 20
drwxrwxrwt 3 nobody nogroup 4096 Jul 1 20:34 .
drwxrwxrwt 13 nobody nogroup 4096 Jul 1 19:24 ..
drwxr-xr-x 246 backup users 12288 Jun 30 17:37 Calibre Library
我不知道为什么它会更改用户和组,并且没有分配给正确的用户和组。这是为什么?
答案1
更新:
我开始认为你的问题可能与你的机器上的 UID/GID 不同有关。
用户在这个网站上解释如下:
您在新服务器上的 /etc/passwd 中没有用户名,这就是为什么您复制的文件中看不到所有者/组名。
只需将 /etc/passwd、/etc/shadow 和 /etc/group 中的相应条目从旧服务器复制到新服务器就可以了。
这有道理吗?在评论中我提到在客户端和服务器上对某些文件/文件夹使用“stat”命令。stat 的部分输出将显示 UID 和 GID。这可能有助于确定客户端和服务器之间的差异。
原始答案:
我看到你有“[电子邮件保护]“,但请继续并确保在命令中添加“--super”选项。
rsync -x -r -t -v -o "nobody" -g "nogroup" --super --progress --delete -u --partial -s -e ssh /home/john/Calibre\ Library [email protected]:/media/Boo
-o, --owner
此选项使 rsync 将目标文件的所有者设置为与源文件相同,但前提是接收 rsync 以超级用户身份运行(另请参阅 --super 和 --fake-super 选项)。如果没有此选项,则新文件和/或传输文件的所有者将设置为接收端的调用用户。