Após fazer backup com 'rsync --archive --update' meu diretório inicial de ext4 para btrfs, o rsync relata erros como este:
rsync: readdir("/mnt/backup/home/me/.mozilla/firefox/qbdcaxwe.default/sessions/????????? ??????"): Not a directory (20)
rsync: rename "/mnt/backup/home/me/.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN" ->
+"home/me/.mutt/cache/bodies/imaps:[email protected]/INBOX/3-13228": Not a directory (20)
Quando tento excluir esses itens com 'rm' - há uma mensagem de erro informando que este item é um diretório. Mas 'rm -d' falha com uma mensagem "não é possível remover ...: Esse arquivo ou diretório não existe". 'btrfs check' e 'btrfs scrub' não encontraram nenhum erro no sistema de arquivos.
Aqui está a saída dos comandos 'file', 'rm' e 'rmdir':
$ file /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN: SMTP mail, Non-ISO extended-ASCII text, with very long lines
$ rm /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
rm: remove regular file ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’? y
rm: cannot remove ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’: Not a directory
$ rmdir /.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN
rmdir: failed to remove ‘/.../.mutt/cache/bodies/imaps:[email protected]/INBOX/.3-13228.NMKGEN’: Not a directory
Como esses itens do sistema de arquivos podem ser removidos?
Responder1
O backup do homedir de um usuário pode ter problemas se executado pelo usuário enquanto os aplicativos estão em execução, pois os aplicativos podem manter arquivos abertos e/ou adicionar/remover arquivos e diretórios e interferir no processo de backup.
Muito melhor (se possível) é criar o backup como root enquanto o usuário estiver desconectado.
Como alternativa, tente minimizar o número de aplicativos que você está executando ao fazer o backup (saia da GUI e execute o rsync cmd a partir de um terminal de linha de comando).
Finalmente - alguns aplicativos usam caracteres especiais em seus nomes de arquivos/diretórios, o que pode confundir vários utilitários. Para estes você precisa acompanhar as ocorrências (melhor redirecionar a saída para um arquivo) e tratá-las manualmente, usando soluções alternativas (escapamento dos caracteres, uso deABAchave para preencher automaticamente nomes de arquivos/diretórios ou até mesmo outros utilitários de cópia), conforme necessário.
Responder2
Se você estiver usando o btrfs, por que não aproveitar seus recursos?
tire uma foto instantânea:
sudo btrfs sub snap /home/me /home/me/.$(date +%Y-%m-%d_%H%M%S)_snapshot
sincronize novamente o backup antigo no instantâneo em vez dos dados ativos:
rsync --archive --update /mnt/backup/home/me/ /home/me/$(sudo btrfs subvolume list -c /home/me|tail -n1|awk '{print $NF}')/
(Eu uso principalmente rsync -mauvPAX de/ para/ # mas talvez você não precise de tudo isso.)
Agora que você tem o btrfs, pode fazer backup do instantâneo em vez dos dados ativos, e isso deve ajudar a evitar esse problema.