
Estou usando o Ubuntu 10.04. Eu tenho um diretório grande com (muitos subdiretórios) e arquivos de dados que uso com frequência em meus scripts. Gostaria de ter certeza de nunca remover/sobrescrever/alterar acidentalmente nenhum dos arquivos/diretórios neste superdiretório.
Como eu posso fazer isso?
Responder1
Principalmente ordenado diminuindo a proteção e aumentando a conveniência:
Armazene os arquivos em mídia fisicamente somente leitura, como um CD-ROM.
Armazene os arquivos em um sistema de arquivos separado montado somente para leitura.
Se você for o administrador, crie outro usuário e faça com que esses arquivos sejam propriedade de outro usuário.
Usar FUSÍVELbindfs(pacote Ubuntu
bindfs
) para criar uma visualização somente leitura da árvore de diretórios e apontar 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 poderão modificar os arquivos existentes, mas se 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, dadas as suas necessidades, seria se não estivesse disponível.
Se você quiser que os scripts possam gravar na árvore de diretórios, mas sem afetar os arquivos reais, você poderá usar um sistema de arquivos de união, por exemplofunionfsoufusível unionfs.
Responder2
Não existe uma maneira real, porque não importa o que aconteça, você sempre poderá excluí-los no final.
Ainda assim, você pode tentar com permissões de arquivo. Clique com o botão direito no diretório e defina o acesso à pasta para Acessar arquivos e defina o acesso ao arquivo como somente leitura. Depois disso, clique em Aplicar permissões aos arquivos incluídos. Dessa forma, você terá que cancelar manualmente essa configuração quando decidir excluir arquivos nesse diretório.
Responder3
Você pode transferir rsync
o diretório para outro e usá-lo --link-dest
para criar hardlinks para que não ocupem espaço extra.
Um bom artigo éTime Machine para todos os Unix existentes.
Responder4
Errar é humano. Certa vez, apaguei um arquivo importante porque acabei de acordar e ainda estava com sono (sem ressaca) :) Felizmente, isso aconteceu muito depois de eu ter aprendido alguns truques que ajudam a mitigar o impacto negativo dessas ações bobas. Aqui estão eles:
- sempre faça backups, verifique periodicamente se os backups realmente contêm o que deveriam conter, para evitar a situação de perda de um arquivo, tente restaurá-lo a partir de um backup e descubra que por algum motivo ele não está contido no backup
- usar controle de versão
- use um sistema de contabilidade como o inotify, ele o ajudará a rastrear alterações no sistema de arquivos
A partir desse incidente, estabeleci uma regra inflexível adicional: "Nunca toque em um computador enquanto ainda estiver com sono".