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.
/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
mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
cria um diretório com a propriedade do usuário.
strace
(como especificado em uma pseudo resposta).
$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/
?