Como reiniciar uma transferência interrompida com o rsync

0

Eu preciso interromper e reiniciar uma operação de cópia do Linux. Qual é a melhor maneira de fazer isso?

Atualmente, estou no processo de copiar dados de um PC Debian para outro. Eu comecei isso via sshfs e tar como segue, mas não há requisitos para usar sshfs nem tar se outro modo confiável for suficiente:

local$ mkdir /path/to/remote-sdb1
local$ sshfs root@remote:/mnt/sdb1 /path/to/remote-sdb1
local$ tar cf - /path/to/local/data/to/copy | tar xf - -C /path/to/remote-sdb1 &

A caixa remota é uma inicialização única do System Rescue CD sem sistema operacional local e dentro do meu firewall, portanto, não estou muito preocupado com o login como root até que alguém comente o contrário.

Isso está demorando mais do que o esperado originalmente, portanto, preciso interromper a operação para desligar a caixa remota por alguns minutos.

Quando faço o backup, sei que não consigo retomar as operações de tar; em vez disso, há algo como um comando rsync que me permitirá retomar facilmente de onde parei e concluir a transferência, incluindo concluir a transferência errada do arquivo em andamento no momento em que interrompo a operação?

Depois disso, planejo executar o comando rsync em esta resposta para verificar se a transferência foi concluída com êxito, a menos que alguém recomende isso é redundante:

local$ rsync -niaHc /path/to/local/data/to/copy/ /path/to/remote-sdb1/path/to/local/data/to/copy

(Como afirmado no post, eu preciso ter cuidado para terminar o primeiro nome da pasta com um / .)

    
por jia103 30.04.2017 / 20:30

1 resposta

4

Você não pode exatamente , porque os arquivos no diretório de origem podem ser diferentes do que eram originalmente. Ou seja O rsync baixará as versões mais novas dos arquivos.

Para retomar, em geral, repita o mesmo comando.

A menos que você use --partial , arquivos incompletos não serão deixados no seu diretório, então apenas repita o mesmo comando - os arquivos que já foram transferidos não serão transferidos uma segunda vez, e os que não foram transferido será transferido.

BTW, o que eu sempre uso, para garantir que eu não acabe enviando uma segunda cópia da minha fonte para o destino, é eu primeiro certifique-se o diretório de destino é criado. Então use:

rsync <options> source/. dest/.

Dessa forma, (supondo que você esteja usando alguma opção recursiva), ele irá certificar-se de copiar o conteúdo da fonte para o conteúdo do destino.

    
por 30.04.2017 / 22:38