Corri sudo rsync -va --progress
da raiz de uma unidade externa para uma pasta em outra unidade externa. O motivo é que a unidade de origem possui um NTFS com erros e eu não tenho acesso a um PC com Windows para reparar o NTFS.
10 horas depois, dizia:
sent 608725204596 bytes received 19365712 bytes 15902210.53 bytes/sec
total size is 608586212274 speedup is 1.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]
Salvei toda a saída do terminal. No começo, existem algumas centenas Input/output error (5)
de arquivos que eu realmente não preciso, totalizando aproximadamente 2 GB. O "uso do disco" do OSX Finder me diz que a fonte é de 617 bilhões de bytes, não de 608, como no relatório acima.
Questões:
- A primeira parte da saída detalhada (criação de uma lista de arquivos) diz definitivamente
Input/output error (5)
para TODOS os arquivos que não serão copiados? - Será que
code 23
significa que todos os arquivos, exceto osInput/output error (5)
queridos foram copiados com sucesso?
grep '^rsync: ' output
podem ser úteis.Respostas:
23
significa apenas (na página de manual):Para tudo o que não pôde ser transferido, você receberá uma mensagem de erro. Observe que as mensagens de erro podem ser sobre a abertura ou leitura de diretórios, portanto você não verá necessariamente uma mensagem de erro para cada arquivo que não pôde ser transferido.
Se sua fonte não mudou, você pode executar
rsync
novamente-n
para ver o que seria transferido dessa vez sem realmente fazer a transferência.Sobre a diferença de bytes,
rsync
fornece o tamanho dos arquivos (quantos dados podem ser lidos a partir deles). Tem certeza deFinder
que não informa o uso do disco ?Observe também que o NTFS pode armazenar dados em fluxos ou atributos alternativos dos arquivos e
rsync
, normalmente, não transfere (desconhece) aqueles (e isso também pode ser muito útil).fonte
Input/output error (5)
?Input/output error (5)
. Você pode explicar?echo > file; du -k file
ver quanto no sistema de arquivos de origem, mas no NTFS, geralmente é de 4k).rsync
dirá que o tamanho é1
, mas o Finder pode informar 4096 para esse arquivo./foo/bar
e/foo/bar/baz
também não serão transferidos.Você pode silenciar a saída sem erro do rsync usando o
-q
sinalizador do rsync .Se você executar o rsync novamente com o
-q
sinalizador, o rsync provavelmente ainda falhará, mas, pelo menos dessa vez, as mensagens de erro que estão causando seu problema não serão ocultadas sob linhas e linhas de mensagens de status de transferência de arquivos.fonte
Re: error 23-- O motivo mais comum para ter esse erro é cometer um erro menor digitando a fonte rsync. Examine seu comando de origem e verifique se tudo está contra ls, e procure coisas sutis e estúpidas, como um espaço extra ou um problema de 1 l.
fonte