Você pode despejar os atributos dos arquivos usando getfacl -R * >perms.bak
e recuperá-los usando setfacl --restore=perms.bak
Eu infelizmente não tenho escolha senão fazer backup de alguns arquivos de uma partição ext3 em um servidor para um sistema de arquivos que não me permite definir e editar os atributos normais (NFS, com all_squash set para chgrp / chown, etc. root é proibido). Estou planejando usar o rsnapshot para os backups reais, já que eu já estou familiarizado com isso e funcionou bem em outros cenários.
É claro que gostaria que as permissões, propriedade e outros atributos fossem mantidos de alguma forma para esses backups, mesmo que não estejam diretamente com os próprios arquivos. Como eu vejo, isso deixa três opções:
Nada disso é ideal:
find
+ stat
seria um pouco exagerado, mas, mais importante, a restauração dessa informação seria complicada. Eu poderia escrever uma pequena ferramenta (em C) para chamar stat
, despejar a estrutura em um arquivo e restaurar a informação apropriada daquela estrutura, mas isso parece muito trabalho para algo que deveria ser trivial. Sugestões? Estou inclinado para solução # 3, a menos que já exista ou # 2 é mais trivial que eu pensava. Eu quero algo simples e robusto que não exija reinventar nenhuma roda, no entanto estou disposto a escrever novas rodas se elas forem realmente úteis.
Minha primeira sugestão seria criar um sistema de backup mais tradicional - Bacula , tar
ou até mesmo chato dump
( 8) & restore
(8) - e armazene esses backups no armazenamento NFS esmagado. Você ainda pode usar o rsnapshot localmente como uma ferramenta de "recuperação rápida".
O grande benefício aqui é uma maneira bem conhecida e bem suportada de fazer seus backups, que é mais fácil de solucionar e não importa realmente qual é o armazenamento subjacente (porque, no que diz respeito às ferramentas que mencionei, elas estão apenas usando Arquivo disponível para NFS como um contêiner).
/nfs/file
e /nfs
é um ponto de montagem de montagem automática que precisa ser montado primeiro
Por que não apenas colocar os arquivos em algum arquivo? Você pode simplesmente colocá-los no NFS. Eu uso o bacula para criptografar, arquivar e transferir meus arquivos para um servidor de backup.
Veja o backuppc. Ele armazena todos os atributos em um arquivo separado. Ele desduplica quando você tem várias versões do mesmo arquivo em seus backups. Se você usar o rsync como protocolo, os backups adicionais serão feitos em velocidades incrementais. Lida com laptops e afins também.
Uma vez consegui meus primeiros backups em execução, adicionando sistemas adicionais, foi muito fácil.
O Bacula seria uma boa opção para fazer backup do repositório backuppc em fita para armazenamento externo.
EDIT: Releia sua postagem, então é provável que você esteja lendo usando o rsync. Acredito que o backuppc pode se adequar melhor às suas necessidades do que o rsnapshot, e deve ter recursos semelhantes.
Enquanto pesquisava através do rsync manpage hoje por uma razão totalmente não relacionada, eu tropecei no --fake-super
option :
Na página de manual:
When this option is enabled, rsync simulates super-user activities by saving/restoring the privileged attributes via special extended attributes that are attached to each file (as needed). This includes the file’s owner and group...
Qual é exatamente o que eu estava procurando quando fiz essa pergunta, embora não soubesse o que estava procurando antes de postar. Isso resolve o problema sem nenhum truque de sistema de arquivos de loopback, ou o descarregamento de atributos externos ou o FUSE hacking.