Por que o rsync ainda tenta copiar e reclama de espaço insuficiente?

1

Estou usando o rsync para copiar um arquivo grande (> 4 GB) do disco rígido para a unidade USB com a opção "-av --progress". Antes disso, o arquivo já existe no usb e é o mesmo que o do disco. Então, basicamente, estou fazendo um teste. Minha suposição é que, se o rsync for inteligente o suficiente, ele não deverá fazer a cópia real.

No entanto, ele ainda tenta copiar (pelo menos do progresso e do flash USB). Essa é a primeira coisa que não entendo.

Em seguida, ele não reclama de espaço suficiente (o espaço livre no usb é de 2 GB). Isso não deve acontecer porque só precisa substituir o arquivo que ocupa a mesma quantidade de espaço, certo? Eu até uso "--delete-before" e ainda reclama.

Obrigado pela dica.

    
por user180574 17.09.2014 / 22:44

1 resposta

1

Para o seu primeiro problema, qual é o sistema de arquivos no pendrive? Pode não conter informações suficientes sobre o arquivo para o rsync fazer determinações sobre registros de data e hora, permissões, etc.

Quanto ao segundo ponto, a opção --partial faz com que o rsync crie um arquivo temporário enquanto copia, o qual é renomeado assim que a transferência é finalizada.

Por exemplo, estou executando este comando agora mesmo em um sistema Ubuntu 14.04:

/usr/bin/rsync -avzh --partial --progress 192.168.42.40:/Users/Shared/bsd /srv/share/distros

Isso está produzindo a seguinte saída:

receiving file list ... 
36 files to consider
bsd/
bsd/FreeBSD-10.0-RELEASE-i386-dvd1.iso
        738.41M  31%   11.20MB/s    0:02:17

Mas o arquivo que está sendo criado é:

15:28:57 file01 lnelson:/srv/share/distros/bsd> ls -al
drwxr-xr-x 3 lnelson lnelson       4096 Sep 17 15:28 .
drwxr-xr-x 4 lnelson lnelson       4096 Sep 14 23:12 ..
-rw------- 1 lnelson lnelson  242745344 Sep 17 15:28 .FreeBSD-10.0-RELEASE-i386-dvd1.iso.Xo0LH8

Quando a operação foi concluída, recebi:

15:28:58 file01 lnelson:/srv/share/distros/bsd> ls -al
drwxr-xr-x 3 lnelson lnelson       4096 Sep 17 15:31 .
drwxr-xr-x 4 lnelson lnelson       4096 Sep 14 23:12 ..
-rw-r----- 1 lnelson lnelson 2317000704 Sep 15 23:36 FreeBSD-10.0-RELEASE-i386-dvd1.iso

Se o rsync estiver recopiando o arquivo e você estiver usando o sinalizador --partial, ele estará criando um novo arquivo temporário que tenha . como o primeiro caractere, para que você o veja apenas se você executar um ls -a ou ls -al enquanto o rsync estiver em andamento para ver o arquivo temporário. Isso significa que você precisa de espaço livre suficiente na unidade USB para lidar com a cópia de 4GB e o novo arquivo temporário de 4GB até que a cópia termine, quando o temporário substituirá o original e você voltará a usar apenas 4GB no USB dirigir. Durante o rsync, você precisará de 8 GB de armazenamento para concluir a operação.

    
por 18.09.2014 / 00:40

Tags