Eu uso essa chamada de rsync para fazer backup do meu diretório pessoal:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
A página de manual do rsync diz que -a implica -g e -o (entre outras opções), o que deve preservar a propriedade. No entanto, notei que, se um diretório não existe $BACKUP_MNTPOINT/$USER_HOME
, ele é criado com a propriedade root: root em vez da correta. (Isso acontece apenas com os diretórios logo abaixo $BACKUP_MNTPOINT/$USER_HOME
). Por que é que?
$BACKUP_MNTPOINT
é uma unidade montada localmente. $BACKUP_MNTPOINT/$USER_HOME
possui a propriedade e as permissões corretas. Nem $USER_HOME
nem $BACKUP_MNTPOINT
terminar com uma barra.
Os sistemas de arquivos de origem e de destino são XFS e a execução mkdir $BACKUP_MNTPOINT/$USER_HOME
cria um diretório com a propriedade esperada.
files
permissions
users
rsync
kralyk
fonte
fonte
$BACKUP_MNTPOINT
e com quais opções ele é montado? Isso acontece apenas no$BACKUP_MNTPOINT/$USER_HOME
diretório parent ( ) ou em todos os diretórios criados? Fazer$BACKUP_MNTPOINT
e$USER_HOME
terminar com um/
?/home
e para a unidade de backup. Até agora, acho que isso aconteceu apenas para os diretórios pai. Nem$BACKUP_MNTPOINT
nem$USER_HOME
terminar com uma barra. Edição: Posso confirmar agora isso só acontece com os diretórios logo abaixo$BACKUP_MNTPOINT/$USER_HOME
$BACKUP_MNTPOINT/$USER_HOME
tem as permissões corretas, mas os subdiretórios não? Por favor edite sua pergunta e adicionar esses detalhes. Além disso, esclareça semkdir $BACKUP_MNTPOINT/$USER_HOME/foo
cria um diretório de propriedade do seu usuário se você o fizer manualmente.mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
cria um diretório com a propriedade do usuário.strace
(como especificado em uma pseudo resposta).Respostas:
Eu tive um problema semelhante ao usar o
rsync
backup do meu sistema no meu servidor. Eu usei:A solução é que não há realmente um problema. Eu suspeito que você abortou o
rsync
processo depois que viu que ele cria pastas com permissões erradas definidas. O ponto crucial é quersync
apenas define as permissões de uma pasta-pai quando a sincronização é feita com todas as subpastas e arquivos.fonte
Talvez execute o rsync via strace / truss e veja se você recebe um erro de volta do syscall chown () e também para confirmar que chown () tem o caminho correto e o UID / GID.
fonte