![UNIX(Solaris)中两个目录的选择性同步](https://linux22.com/image/503112/UNIX%EF%BC%88Solaris%EF%BC%89%E4%B8%AD%E4%B8%A4%E4%B8%AA%E7%9B%AE%E5%BD%95%E7%9A%84%E9%80%89%E6%8B%A9%E6%80%A7%E5%90%8C%E6%AD%A5.png)
我想知道是否有人知道在两个目录结构之间部分复制(硬链接)文件的好方法?
我当前的后备方案是 cron 调用的脚本。
背景:
我之所以问这个问题,是因为我有两个组都需要访问使用 Tomcat 通过 HTTP 提供的目录结构中的文件主体。特权组可以访问所有文件,而特权较低的组只能访问“公共”子集。这些集合与特定目录无关,但可以通过其命名约定(而不是扩展名)来识别不同类别的文件。
因此,我目前的想法是提供两个单独的目录,一个只包含私有目录(可能有密码保护),另一个包含公共目录。然后运行一些定期过程,从公共文件创建硬链接,以便它们出现在私有目录中,以方便特权用户。我选择朝那个方向链接,因为更重要的是让非特权用户立即可以使用该文件。(priv = 管理员,unpriv = 普通用户)
我希望这说得通。如果有人有疑问,我会尽力澄清。
答案1
我会使用符号链接。
你可以使用这个 Bash 脚本:
#!/bin/bash
ln -s $1 $2/$(basename $1)
使用类似这两个命令:
find unpriv_criteria -exec ./linkscript {} /unpriv/dir \;
find priv_criteria -exec ./linkscript {} /priv/dir \;
答案2
丹尼斯所提议的东西可以在 cron 作业或类似作业中发挥作用。
如果这是 Linux,我会告诉你通知这将允许您消除反映原始目录的硬链接的 cron 作业和延迟。
然而,这在 Solaris 下似乎并不存在。
如果硬链接不是太重要,那么 cron 作业可能就足够了。