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?
Tags backup permissions rsync acl linux