Como posso sombrear uma árvore de diretórios inteira e copiar os arquivos antes de escrevê-los?

1

Eu tenho um grande repositório de código-fonte em uma montagem NFS do Linux e gostaria de criar uma cópia de sombra desse repositório de tal forma que apenas os arquivos que escrevo neste repositório de sombra sejam modificados em meu repositório de sombra. Todos os outros arquivos permanecem links simbólicos ou hardlinks para o repositório principal, original.

Isso pode ser feito com hardlinks no NFS?

Eu posso imaginar um script em que, assim como em um sistema de controle de versão, eu verifique os arquivos que quero modificar do original, o que faz com que o script separe o link entre repositórios mestre e shadow, criando uma cópia de o arquivo do repositório principal que eu posso modificar. No entanto, tenho certeza de que alguém criou um utilitário para isso e eu simplesmente não estou ciente dos obscuros encantamentos do Linux necessários para conjurar minha solução.

    
por Ross Rogers 29.11.2011 / 20:23

2 respostas

3

O sistema de janelas X11 incluía um conjunto de utilitários que incluía o lndir ( link ), que criava uma sombra a diretório. Criou uma cópia do diretório original de forma que:

  1. cada diretório na cópia era um diretório real
  2. cada arquivo regular na cópia era um link simbólico para o original

Quando quiser modificar um arquivo, você precisa:

  1. exclua seu link simbólico na cópia
  2. copie o arquivo original para a cópia da árvore de diretórios
  3. e modifique-o

talvez mais manual do que você deseja, mas pode ser mais fácil do que configurar um novo sistema de arquivos. No Ubuntu 12.04, isso faz parte do pacote xutils-dev.

    
por 23.10.2012 / 13:06
2

Uma configuração baseada em UnionFS pode funcionar para você. O UnionFS permite que você mescle o NFS somente leitura com um recurso editável, crescendo dinamicamente , sistema de arquivos com dispositivo de loop .

    
por 30.11.2011 / 14:42