![两台服务器之间克隆所有权以及重名文件和文件夹组](https://linux22.com/image/127292/%E4%B8%A4%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E5%85%8B%E9%9A%86%E6%89%80%E6%9C%89%E6%9D%83%E4%BB%A5%E5%8F%8A%E9%87%8D%E5%90%8D%E6%96%87%E4%BB%B6%E5%92%8C%E6%96%87%E4%BB%B6%E5%A4%B9%E7%BB%84.png)
我需要仅同步所有权和组两个服务器文件系统之间的每个文件和目录。也就是说如果我有服务器A和服务器B,我不需要也不想复制数据从一台服务器到另一台服务器,我需要为 A 中存在的 B 中的每个文件设置相同的所有者和组。如果 A 中不存在文件/目录,反之亦然,我不需要执行任何操作,只是将两个服务器中存在的每个文件和目录的所有者和组更改为服务器 A 中的文件/目录之一。我知道“ chown --reference
”可以做到这一点,但我不知道如何使用它进行更改其他文件和目录。
我希望我正确地解释了我的问题。
请问,有什么建议吗?
提前致谢
答案1
假设您不介意尝试在已经正确拥有它们的文件上设置所有权,我想您可以按照以下方式运行一些东西
/bin/stat --format 'chown %u:%g %n' ~/.bash*
在服务器 A 上,这将为您提供在服务器 B 上执行的命令列表chown
。(您可以通过管道传输整个内容| ssh user@serverB
。)
您偶尔会收到 B 上不存在的文件的错误,但这无害。