Selective syncronisation of two directories in UNIX (Solaris)

I'm wondering if anyone knows of a nice way to partially duplicate (hard link) files between two directory structures?

My current fall back is a script invoked by cron.

As background:

I ask since I have two groups who both need to access a body of files in a directory structure served via HTTP using Tomcat. A privileged group may access all the files and a less privileged group may only access a "public" subset. These sets are not aligned to particular directories but the different class of file can be identified by their naming convention (but not extension).

Поэтому моя текущая идея состоит в том, чтобы обслуживать две отдельные директории, одна из которых содержит только частные (возможно, защищенные паролем), а другая - открытые. Затем запустить некоторый периодический процесс, посредством которого я создаю жесткие ссылки из общедоступных файлов, чтобы они появлялись в личных каталогах для удобства привилегированных пользователей. Я выбираю ссылку в этом направлении, так как более важно, чтобы файл сразу был доступен для непривилегированных пользователей. (priv = admin, unpriv = обычный пользователь)

Я надеюсь, что в этом есть смысл. Я постараюсь уточнить, есть ли у кого-нибудь вопросы.

2 ответа

Решение

Я бы использовал символические ссылки.

Вы можете использовать этот скрипт Bash:

#!/bin/bash
ln -s $1 $2/$(basename $1)

с чем-то вроде этих двух команд:

find unpriv_criteria -exec ./linkscript {} /unpriv/dir \; 
find priv_criteria -exec ./linkscript {} /priv/dir \;

Что-то вроде того, что предложил Деннис, будет работать на постоянной работе или в другом подобном.

Если бы это был Linux, я бы указал на inotify, который позволил бы вам исключить работу cron и задержку из жестких ссылок, отражающих исходный каталог.

Однако в Solaris этого не существует.

Если жесткие ссылки не слишком критичны, работа cron, скорее всего, будет хорошо работать.

Другие вопросы по тегам