Como limpar após rsync com falha?

10

Eu matei um processo local "rsync -ah".
Ele deixou arquivos inúteis como ".abc.vmdk.zxivMN" no diretório de destino.
Os arquivos inúteis não são excluídos em execuções consecutivas de "rsync -ah".

Detalhes:
Eu corri diff em ambas as pastas que eu estava sincronizando e relatou: "Apenas em / mnt / archive1 / documents / general: .abc.vmdk.zxivMN"

Qual é a melhor maneira de limpar os arquivos rsync temporários?

    
por user27465 06.08.2013 / 08:15

4 respostas

11

Diga a rsync para excluir os arquivos que não estão na origem, com --delete-during ou --delete-after . Tenha cuidado e use essa opção somente se você não tiver arquivos legítimos no destino que não estão lá na origem.

Veja man rsync .

Claro, você pode excluir manualmente os arquivos detectados com diff ...

    
por 06.08.2013 / 08:57
1

Eu faço isso usando

find -type f -iname ".*.*.??????" -ls

para teste e

find -type f -iname ".*.*.??????" -delete

para claro

    
por 18.08.2018 / 00:27
-1

Descobri que o seguinte comando funcionou para mim ao tentar excluir arquivos temporários deixados pelo rsync após uma falha na transferência.

find vod-content/ -path '*/.*' -print0 | xargs -0 -r rm -v

O que isto faz é encontrar todos os arquivos "ocultos" (arquivos que começam com o caractere ".") e passa-os ao comando "rm" para excluí-los.

Um óbvio problema conhecido em relação ao código acima é que, se o seu conteúdo contiver arquivos ocultos, este comando os excluirá também.

    
por 24.12.2017 / 10:03
-2

Estou procurando uma solução melhor, mas a única em que consigo pensar é mover todos os arquivos empty começando com . e tendo mais dois pontos neles, em uma pasta de lixeira (usando rm é um pouco arriscado):

find -type f -empty -iname ".*.*.*" | xargs -n 1 -d'\n' mv -v -t /tmp/

Não é de forma alguma infalível.

    
por 16.09.2017 / 02:57

Tags