Errore 23 di Rsync: posso sapere quali file non sono stati trasferiti?


32

Ho eseguito sudo rsync -va --progressdalla radice di un'unità esterna a una cartella su un'altra unità esterna. Il motivo è che l'unità di origine ha un NTFS privo di errori e non ho accesso a un PC Windows per riparare NTFS.

10 ore dopo ha detto:

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]

Ho salvato l'intero output del terminale. All'inizio, ci sono alcune centinaia Input/output error (5)di file che in realtà non mi servono per un totale di circa 2 GB. OSX Finder "utilizzo del disco" mi dice che l'origine è 617 miliardi di byte, non 608 come nel rapporto sopra.

Domande:

  1. La prima parte dell'output dettagliato (creazione di un elenco di file) dice sicuramente Input/output error (5)per OGNI file che non verrà copiato?
  2. Fa code 23significa che tutti i file ad eccezione di Input/output error (5)quelli sono stati copiati con successo?

1
Forse utile: i messaggi di errore di rsync sembrano iniziare con "rsync:", quindi grep '^rsync: ' outputpotrebbe essere utile.
Barrycarter,

Risposte:


19

23 significa solo (dalla pagina man):

23 Trasferimento parziale a causa di un errore

Per tutto ciò che non è stato possibile trasferire, verrà visualizzato un messaggio di errore. Tieni presente che i messaggi di errore potrebbero riguardare l'apertura o la lettura di directory, quindi non vedrai necessariamente un messaggio di errore per ogni file che non è stato possibile trasferire.

Se la tua fonte non è cambiata, puoi eseguire di rsyncnuovo il con -nper vedere cosa trasferirà questa volta senza effettivamente effettuare il trasferimento.

A proposito della differenza di byte, rsyncti dà la dimensione dei file (quanti dati possono essere letti da loro). Sei sicuro di Findernon dirti invece l' utilizzo del disco ?

Si noti inoltre che NTFS può archiviare i dati in flussi o attributi alternativi dei file e rsyncin genere non trasferirà (non è a conoscenza di) quelli (e che può rappresentare anche molto).


Quindi stai dicendo che TUTTI i dati (non importa quanto corrotti) che non sono stati trasferiti sono stati elencati all'inizio come Input/output error (5)?
themirror

per quanto riguarda la differenza di byte: Sì, è corretto. Sono confuso sul perché la differenza tra il rapporto di rsync e "l'utilizzo del disco" di Finder sia di 9 miliardi di byte, ma posso solo identificare 2-3 miliardi di byte di file che hanno detto Input/output error (5). Puoi spiegare?
themirror

1
@themirror, un file da 1 byte avrà ancora bisogno di qualche chilo-byte allocato sul disco per memorizzarlo (prova echo > file; du -k filea vedere quanto sul filesystem di origine, ma su ntfs, di solito è 4k). rsyncti dirà che la dimensione è 1, ma Finder potrebbe dirti 4096 per quel file.
Stéphane Chazelas,

@themirror, scrivi il tuo primo commento, sto dicendo che per tutto (contenuto del file, vedi la mia modifica sui flussi alternativi) che non possono essere trasferiti, otterrai un errore, ma se ottieni una directory non in grado di leggere / foo , quindi ovviamente /foo/bare /foo/bar/baznon sarà nemmeno trasferito.
Stéphane Chazelas,

17

Puoi silenziare l'output senza errori di rsync usando il -qflag di rsync .

-q, --quiet                 suppress non-error messages

Se esegui di nuovo rsync con il -qflag, probabilmente rsync continuerà a fallire, ma almeno questa volta tutti i messaggi di errore che causano il tuo problema non verranno nascosti sotto le righe e le righe dei messaggi di stato del trasferimento di file.


2

Ri: errore 23-- Il motivo più comune per avere questo errore è fare un errore di battitura minore inserendo l'origine rsync. Controlla il tuo comando sorgente e assicurati che tutto vada a buon fine con ls e cerca cose stupide e sottili come uno spazio extra o un problema di 1 l.


So che è sciocco, ma ho anche preso la strada per continuare a scavare nel codice fino a quando ho capito di aver fatto questo stupido errore. Grazie!
rburhum,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.