Cria um manifesto da pasta pessoal?

2

Eu quero criar um manifesto de arquivo (lista de nomes de arquivos / pastas, estrutura de diretório e metadados de arquivo) da minha pasta pessoal. Eu não quero que o conteúdo real dos arquivos seja salvo.

Como isso pode ser feito (preferencialmente sem o terminal)?

    
por FuriousUser 10.09.2014 / 04:00

1 resposta

4

Solução 1: somente metadados [Editar]

Então, de acordo com a edição recente de alguém, você pode querer apenas fazer backup da estrutura do sistema de arquivos e dos metadados não periodicamente. Isso pode ser feito facilmente:

find /home/furioususer -ls

listará todos os arquivos e diretórios no diretório /home/furioususer juntamente com alguns metadados. Para redirecionar a saída para o arquivo /path/to/backups/file use

find /home/furioususer -ls > /path/to/backups/file

Você pode querer dar ao arquivo algum nome significativo com base no nome do usuário e no tempo de backup:

find /home/furioususer -ls > "/path/to/backups/furioususer.metadata.$(date +%F_%T%z)"

$(date +%F_%T%z) diz ao shell para executar o subcomando date +%F_%T%z e substituí-lo pela saída desse comando. (Vá em frente e tente executar esse comando diretamente para ver o resultado e brincar com ele!) As aspas são necessárias para evitar a maioria dos caracteres especiais (por exemplo, espaços e vírgulas) como aparecem nessa data de ser mal interpretado. É claro que você pode escolher qualquer outro caminho de arquivo (programaticamente gerado) que julgue apropriado.

Você pode ajustar os dados em que está realmente interessado (por exemplo, tamanho, proprietário, grupo, permissões, mtime, atime) substituindo -ls por -printf <YOUR FORMAT STRING> . Para obter detalhes sobre essa opção, procure o manual . Exemplo com o caminho do arquivo, tamanho do arquivo, proprietário, permissões de acesso e hora da última modificação:

find /home/furioususer -printf "%p: %s bytes, owned by %u, permissions %m, last change %t\n"

Como isso pode se tornar muito grande, mas bem compressível, você pode canalizar isso por meio de um compressor como xz :

find /home/furioususer -ls | xz > "/path/to/backups/furioususer.metadata.$(date +%F_%T%z).xz"

Você pode generalizar este comando um pouco usando variáveis de ambiente (do formulário ${} ) em vez de codificar seu caminho inicial e nome de usuário, que o shell substituirá com seus respectivos valores:

find "${HOME}" -ls | xz > "/path/to/backups/${USER}.metadata.$(date +%F_%T%z).xz"

Restaurar isso automaticamente é outra história, mas eu não sei como isso seria de alguma utilidade, já que você estaria praticamente morto na água sem dados de arquivos reais.

Se você não quer mexer com a linha de comando toda vez, você pode criar um script de shell usando um editor de texto gráfico e um iniciador de aplicativo apontando para ele com um editor de aplicativos.

Solução 2: Déjà-Dup

… oferece várias opções de backup - offline e online - algumas das quais parecem atender às suas necessidades. Ele também está bem integrado ao Nautilus, para que você possa revisar e restaurar facilmente as versões anteriores dos arquivos. Eu nunca tentei isso pessoalmente, mas eu pesquisei suas possibilidades intensamente há algum tempo.

Solução 3: instantâneos de cópia na gravação

A solução mais flexível e que economiza recursos (offline) que eu conheço para isso é colocar o seu diretório home em um Btrfs volume¹ e execute snapshots periódicos dele. A última vez que eu olhei (cerca de um ano atrás) não havia nenhuma ferramenta pronta para usar e eu investi algumas tardes para modificar, ajustar e testar os shell scripts de outras pessoas para fazê-los funcionar do jeito que eu queria. / p>

A implantação inteira pode ser feita tecnicamente sem tocar na linha de comando se você reutilizar o trabalho existente, mas devido ao estado experimental das coisas, você provavelmente alcançará pontos onde seria muito mais fácil fazer isso. Portanto, espero que isso não seja uma solução adequada para você, mas pode ser para outras pessoas.

Se solicitado, fornecerei código, instruções e links para soluções de trabalho, incluindo a minha.

¹ ext3 / 4 pode ser convertido em Btrfs sem problemas

    
por David Foerster 10.09.2014 / 04:41