Uruchomiłem sudo rsync -va --progress
z katalogu głównego jednego dysku zewnętrznego do folderu na innym dysku zewnętrznym. Powodem jest to, że dysk źródłowy ma bezbłędny system plików NTFS i nie mam dostępu do komputera z systemem Windows, aby naprawić system plików NTFS.
10 godzin później napisano:
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]
Zapisałem całe wyjście terminala. Na początku jest kilkaset Input/output error (5)
plików, których nie potrzebuję w sumie około 2 GB. „Wykorzystanie dysku” przez OSX Finder mówi mi, że źródłem jest 617 miliardów bajtów, a nie 608 jak w powyższym raporcie.
Pytania:
- Czy pierwsza część pełnego wyjścia (budowanie listy plików) zdecydowanie mówi
Input/output error (5)
o KAŻDYM pliku, który nie zostanie skopiowany? - Czy to
code 23
oznacza, że wszystkie pliki opróczInput/output error (5)
tych zostały pomyślnie skopiowane?
grep '^rsync: ' output
mogą być pomocne.Odpowiedzi:
23
oznacza tylko (ze strony podręcznika):W przypadku wszystkiego, czego nie można przenieść, pojawi się komunikat o błędzie. Zauważ, że komunikaty o błędach mogą dotyczyć otwierania lub odczytywania katalogów, więc niekoniecznie zobaczysz komunikat o błędzie dla każdego pliku, którego nie można przenieść.
Jeśli twoje źródło się nie zmieniło, możesz uruchomić je
rsync
ponownie,-n
aby zobaczyć, co przeniesie tym razem bez faktycznego wykonania transferu.O różnicy bajtów,
rsync
podaje rozmiar plików (ile danych można z nich odczytać). Czy na pewnoFinder
nie powiesz w zamian o zużyciu dysku ?Należy również pamiętać, że NTFS może przechowywać dane w alternatywnych strumieniach lub atrybutach plików i
rsync
zazwyczaj nie przenosi (nie jest tego świadomy) tych (i to również może stanowić wiele).źródło
Input/output error (5)
?Input/output error (5)
. Możesz wytłumaczyć?echo > file; du -k file
zobaczyć, ile w źródłowym systemie plików, ale w NTFS zwykle jest to 4k).rsync
powie Ci, że rozmiar jest1
, ale Finder może powiedzieć 4096 dla tego pliku./foo/bar
i/foo/bar/baz
nie zostaną przeniesione.Możesz wyciszyć wyjście bez błędów rsync za pomocą
-q
flagi rsync .Jeśli ponownie uruchomisz rsync z
-q
flagą, rsync prawdopodobnie nadal się nie powiedzie, ale przynajmniej tym razem wszelkie komunikaty o błędach, które powodują problem, nie zostaną ukryte pod liniami i liniami komunikatów o stanie przesyłania plików.źródło
Odp: błąd 23 - Najczęstszym powodem tego błędu jest wprowadzenie niewielkiej literówki do źródła rsync. Przejrzyj komendę źródłową i upewnij się, że wszystko sprawdza się względem ls, i szukaj głupich, subtelnych rzeczy, takich jak dodatkowe miejsce lub problem 1-l.
źródło