Backup do servidor Ubuntu com o cron / rsync: Problemas com a continuação de arquivos grandes

1

Atualmente, tenho um servidor de backup dedicado do Ubuntu que se prepara diariamente (usando o rtcwake). 5 minutos depois, um trabalho cron BASH entra em ação, usando o rsync para extrair arquivos de vários locais da rede. Se esse script BASH for concluído, a última coisa que ele fará é colocar o servidor novamente em suspensão até o dia seguinte (5 minutos antes de a tarefa de backup começar a ser executada novamente - você obtém a imagem!).

Existe uma tarefa cron adicional que é executada às 22h45 para "limpar" qualquer processo de script / rsync em execução e suspender a máquina até o dia seguinte.

Meu problema / consulta é: a máquina está em um link lento (sem fio 802.11n) e precisa sincronizar alguns arquivos de mídia muito grandes. Eu estou usando comandos rsync semelhantes a este:

rsync -aPvz -e ssh --itemize-changes --modify-window=60 --exclude 'thumbs.db' /source/ /destination/

E no caso onde o rsync não pode ser concluído dentro do tempo que o servidor está acordado, eu assumi (por causa de -P) que ele tentaria continuar de onde parou.

O que realmente parece acontecer é que acabo com várias cópias parciais do mesmo arquivo no diretório, mas a cópia nunca é concluída.

Por exemplo:

.BigFile.mkv.EJtNSS (4.1GB)
.BigFile.mkv.KSUStW (3.7GB)
.BigFile.mkv.LSewSA (4.3GB)

Alguém já se deparou com um cenário semelhante antes? Estou muito feliz em mudar tudo isso se houver um software que faça um trabalho semelhante (incluindo o manuseio do sleep / wake). Sou novo no script BASH, mas estou pronto para tentar qualquer sugestão.

Felicidades, Loz

    
por Loz 02.07.2014 / 12:32

2 respostas

2

Adicionar --inplace ajudará muito nos arquivos grandes. Ele faz o rastreamento após um rsync com falha ou ser eliminado mais rápido porque não usa arquivos temporários.

    
por 03.07.2014 / 12:25
2

A partir do seu sintoma, as tentativas de sincronização estavam provavelmente inacabadas devido à lentidão do link e à sincronização adicional depois. Nesse caso, a opção --inplace é, na verdade, a pior opção, pois não foi projetada para situações ligadas à rede. Citando a partir da opção --inplace :

WARNING: The file’s data will be in an inconsistent state during the transfer (and possibly afterward if the transfer gets interrupted) ...

Você pode querer verificar outro post na sincronização de arquivos muito grandes com o rsync. (Dica: --append ) Além disso, é estranho que a opção --partial que você especificou ( -P inclui --partial ) não pegue o arquivo parcial existente. Ainda não há informações suficientes para determinar a causa, mas ela pode ser verificada por meio de uma opção mais detalhada (adicione mais -v ).

    
por 08.07.2014 / 19:23