Unix
UNIX (Solaris) 中兩個目錄的選擇性同步
我想知道是否有人知道在兩個目錄結構之間部分複制(硬連結)文件的好方法?
我目前的回退是由 cron 呼叫的腳本。
作為背景:
我問,因為我有兩個組都需要訪問使用 Tomcat 通過 HTTP 提供的目錄結構中的文件主體。特權組可以訪問所有文件,而特權較低的組只能訪問“公共”子集。這些集合不與特定目錄對齊,但不同類的文件可以通過它們的命名約定(但不是副檔名)來辨識。
因此,我目前的想法是提供兩個單獨的目錄,一個僅包含私有目錄(可能受密碼保護),另一個包含公共目錄。然後執行一些定期過程,我從公共文件創建硬連結,以便它們出現在私有目錄中,以方便特權使用者。我選擇在那個方向連結,因為更重要的是文件立即可供非特權使用者使用。(priv = 管理員,unpriv = 普通使用者)
我希望這是有道理的。如果有人有任何問題,我會盡力澄清。
我會使用符號連結。
你可以使用這個 Bash 腳本:
#!/bin/bash ln -s $1 $2/$(basename $1)
使用類似以下兩個命令的內容:
find unpriv_criteria -exec ./linkscript {} /unpriv/dir \; find priv_criteria -exec ./linkscript {} /priv/dir \;
像丹尼斯提議的東西可以在 cron 工作或類似的工作中工作。
如果這是 linux,我會向您指出inotify,它可以讓您消除反映原始目錄的硬連結的 cron 作業和延遲。
然而,這在 Solaris 下似乎不存在。
如果硬連結不是太關鍵,那麼 cron 作業可能就可以了。