Como evitar que eu remova acidentalmente / altere arquivos?

2

Estou usando o Ubuntu 10.04. Eu tenho um grande diretório com (muitos subdiretórios) e arquivos de dados que eu uso com bastante frequência em meus scripts. Eu gostaria de ter certeza de que eu nunca removesse / sobrescrevesse / alterasse qualquer um dos arquivos / diretórios deste super diretório.

Como posso fazer isso?

    
por David B 12.09.2010 / 09:55

4 respostas

3

Principalmente ordenado por proteção decrescente e maior conveniência:

  • Armazene os arquivos em mídia fisicamente somente leitura, como um CD-ROM.

  • Armazene os arquivos em um sistema de arquivos separado que você monta somente leitura.

  • Se você for o administrador, crie outro usuário e torne esses arquivos de propriedade de outro usuário.

  • Use o FUSE bindfs (pacote Ubuntu bindfs ) para criar uma visualização somente leitura do árvore de diretórios e aponte seus scripts para essa visualização somente leitura :

    bindfs -p a-w /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    
  • Torne a árvore de diretórios somente leitura com chmod a-w /path/to/tree .

  • Crie uma cópia da árvore com arquivos vinculados e aponte seu script para a cópia. Então seus scripts ainda podem modificar arquivos existentes, mas se eles criarem, removerem ou substituirem arquivos, isso afetará apenas a cópia.

    cp -al /path/to/actual/tree /path/to/readonly/view
    myscript -d /path/to/readonly/view
    

Eu recomendo que você use bindfs. A única razão pela qual eu faria qualquer outra coisa, de acordo com seus requisitos, é se ela não estivesse disponível.

Se você quisesse que os scripts pudessem gravar na árvore de diretórios, mas sem afetar os arquivos reais, você poderia usar um sistema de arquivos union, por exemplo funionfs ou unionfs-fuse .

    
por 12.09.2010 / 13:04
2

Não há uma maneira real, porque, não importa o quê, você sempre poderá excluí-los no final.

Ainda assim, você pode tentar com permissões de arquivo. Clique com o botão direito do mouse no diretório e defina o acesso à pasta para arquivos do Access e defina o acesso a arquivos como somente leitura. Depois disso, clique em Aplicar Permissões aos Arquivos Fechados. Dessa forma, você terá que desabilitar manualmente essa configuração quando decidir excluir arquivos nesse diretório.

    
por 12.09.2010 / 10:07
1

Você poderia rsync do diretório para outro e usar --link-dest para criar hardlinks para que eles não ocupem espaço extra.

Um bom artigo é o Time Machine para todos os Unix disponíveis .

    
por 12.09.2010 / 10:34
0

Errar é humano. Uma vez eu apaguei um arquivo importante porque eu acabei de acordar e eu ainda estava com sono (sem ressaca) :) Felizmente, isso aconteceu muito depois que eu aprendi alguns truques que ajudavam a mitigar o impacto negativo de tais ações tolas. Aqui estão eles:

  • sempre fazem backups, periodicamente, certifique-se de que os backups realmente contêm o que devem conter, para evitar a situação quando você perder um arquivo, tentar restaurá-lo a partir de um backup e descobrir que, por algum motivo, ele não está contido no backup backup
  • use o controle de versão
  • use um sistema de contabilidade como o inotify, ele ajudará você a rastrear as alterações no sistema de arquivos

A partir desse incidente, configurei uma regra adicional de avaliação: "Nunca toque em um computador quando ainda estiver com sono".

    
por 12.09.2010 / 16:44