Como limpar após falha no rsync?


12

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

Detalhes:
Executei o diff nas duas pastas que estava sincronizando e relatou: "Somente em / mnt / archive1 / documents / general: .abc.vmdk.zxivMN"

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

Respostas:


12

Diga rsyncpara excluir arquivos que não estão na fonte, com --delete-duringou --delete-after. Tenha cuidado e use esta opção apenas se você não tiver arquivos legítimos no destino que não estejam na origem.

Veja man rsync.

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


Isso não é bom quando você está fazendo uma cópia e não uma mudança.
Sridhar Sarnobat

6

Eu faço isso usando

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

para teste e

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

para claro


-1

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

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

O que isso faz é encontrar todos os arquivos "ocultos" (arquivos que começam com o caracter ".") E os passa para o comando "rm" para excluí-los.

Um problema óbvio conhecido sobre o código acima é que, se o seu conteúdo contiver arquivos ocultos, esse comando os excluirá também.


-2

Estou procurando uma solução melhor, mas a única que consigo pensar é mover todos os emptyarquivos começando com a ., e com mais dois pontos neles, para uma pasta de lixo (usar rmé um pouco arriscado):

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

De maneira alguma à prova de falhas.


Downvoted sem nenhuma explicação
Sridhar Sarnobat
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.