[FUG-BR] "Pastas virtuais"

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Sex Ago 5 22:46:43 BRT 2005


Pablo Sánchez wrote:
> cara, de boa... sei lá! acho que isso nem é possível. Pelo menos eu
> nunca ouvi falar de algo do gênero.
> 
> Com sorte talvez, vc conseguiria fazer um shell script que roda-se a
> cada 5 minutos buscando arquivos novos e criando links simbólicos para
> esses arquivos em uma pasta nova. Mas desse jeito que vc falou, link
> simbólico para dois lugares? Isso não existe... não que eu saiba, pelo
> menos, pode ser ignorância minha...
> 
> On 8/5/05, Rodrigo de Souza Valério <rsvalerio em yahoo.com.br> wrote:
> 
>>Pessoal,
>>
>>Sou um tanto quanto inexperiente em *nix, então lá via
>>minha pergunta...
>>
>>Como faço prara criar uma "pasta virtual", igual a um
>>link simbólico, só que ao invés de apontar para um
>>pasta, apontar para duas pastas diferentes, com
>>conteúdos diferentes, exemplo, tenho a seguinte
>>estrutura:
>>
>>/2001/docs
>>/2002/docs
>>
>>quero poder acessar a pasta /qualquer coisa/docs, e
>>ver o conteúdo das duas pastas, é possível isso?
>>
>>Somente com o comando ln, através do samba, agradeço
>>desde já.
>>
>>Rodrigo Valério
>>MPRO

Rodrigo Valerio (espero que nao seja parente do outro Valerio.. o 
Marcos.. hehe).

O que voce quer existe, apesar de nao ser muito comum.
Chana-se unionfs e e' bastante flexivel.

De fato ao lado do nullfs e muito usado por pessoas que administram 
diversos ambientes com Jail. E usado comercialmente em empresas como a 
VERIO para oferecer virtualmente conteudo de multiplos diretorios em um 
soh diretorio.

O comportamento do unionfs igualmente ao do nullfs e' um pouco conhecido 
em circunstancias diversas, mas o funcionamento "basico" deles e' comum 
e seguro. Sobre flexibilidade e "possibilidades diversas" - levando a 
"comportamentos adversos" leia a pagina de manual mount_unionfs(8). No 
ambiente simples que voce quer estou certo que o exemplo a seguir vai 
ser bem claro. Acompanhe passo-a-passo:


# mkdir /tmp/diretorio1

# mkdir /tmp/diretorio2

# echo "conteudo arquivo 1 dentro diretorio 1" > /tmp/diretorio1/arquivo1

# echo "conteudo arquivo 2 dentro diretorio 2" > /tmp/diretorio2/arquivo2

# mkdir /tmp/uniao_diretorios1e2

# mount_unionfs /tmp/diretorio1 /tmp/uniao_diretorios1e2

# mount_unionfs /tmp/diretorio2 /tmp/uniao_diretorios1e2

# ls /tmp/uniao_diretorios1e2/
arquivo1        arquivo2

# cat /tmp/uniao_diretorios1e2/arquivo1
conteudo arquivo 1 dentro diretorio 1

# cat /tmp/uniao_diretorios1e2/arquivo2
conteudo arquivo 2 dentro diretorio 2

Eh isso que voce quer neh? Black magic total.

Tem coisa mais obscura no FreeBSD em relacao a inodes; tente ler o 
codigo fonte do mount quando voce da um "mount -o snapshots" e ver o que 
acontece quanto aos inodes, especialmente ao serem submetidos a um 
unlink() -- rm(1) -- em um FS fotografado - com snapshot logico ativo. 
Da pra se divertir um bocado.

-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
sip://316601@sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"


_______________________________________________
Freebsd mailing list
Freebsd em fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br




Mais detalhes sobre a lista de discussão freebsd