Maneira limpa de preservar permissões em backups do Linux armazenados em NTFS

0

Com cygwin, rsync e SSH eu configurei um mecanismo de backup que copia todo o conteúdo vServers (executando Debian) para meu disco rígido NTFS local (executando o Windows 10) e funciona. Parcialmente.

Eu uso este comando:

rsync -avzu --no-perms \
  --exclude 'bin' \
  --exclude 'dev' \
  [...]
  --exclude 'sys' \
  --exclude 'tmp' \
  --exclude 'var/tmp' \
  --exclude 'var/cache' \
  [user]@[domain]:/ /var/vserver-backup

E, claro, isso faz com que todos os arquivos percam suas permissões à medida que são copiados (isso é devido ao argumento --no-perms ). Também não tenho certeza se poderei copiar os links simbólicos de volta ao vServer corretamente.

O que eu quero é que os arquivos locais (as cópias) sejam acessíveis por mim neste computador local (usando NTFS) . Como as permissões do Linux seriam mapeadas descontroladamente para qualquer uma das contas dos meus computadores locais e, portanto, talvez não estejam acessíveis, o uso do NTFS-ACL não parece ser uma boa ideia, certo? Por outro lado, quero poder restaurar esse backup de forma limpa, incluindo ACLs e links simbólicos . E sim, o vServer definiu ACL estendido em alguns arquivos e até em diretórios (definido usando setfacl ).

Isso provavelmente seria possível se eu usasse tar em vez de rsync , não seria? Mas isso levaria muito mais tempo, já que não apenas transmitiria o delta, certo? (Não tenho certeza se tar é uma possibilidade ...)

Então, há alguma maneira no Debian de criar, de forma automatizada, um arquivo contendo as permissões de todos os arquivos e os locais dos links simbólicos, para que ele possa ser executado após a restauração do backup? Eu imagino que seja um script de shell neste formato:

chown root:root /var
chmod 0755 /var
chown root:root /var/data
chmod 0755 /var/data
[...]
ln -s /etc/some/file /etc/path/to/symlink
[...]
chown root:root /www
chmod 0700 /www
setfacl -d -m g:www-data:rx /www

Este arquivo, é claro, será criado no lado do servidor e será copiado pelo comando rsync para o disco rígido local juntamente com todos os outros arquivos.

Existe uma maneira conhecida de fazer isso? Ou você tem alguma outra sugestão? O que você faria?

    
por Matmarbon 12.08.2015 / 10:18

0 respostas