Não é possível excluir o arquivo no Linux

Não é possível excluir o arquivo no Linux

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.

informação relacionada