Rsync Hata 23: Hangi dosyaların aktarılmadığını söyleyebilir miyim?


32

sudo rsync -va --progressBir harici sürücünün kökünden başka bir harici sürücüdeki bir klasöre koştum . Bunun nedeni kaynak sürücünün hatasız bir NTFS'ye sahip olmasıdır ve NTFS'yi onarmak için bir Windows bilgisayarına erişimim yok.

10 saat sonra dedi ki:

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]

Tüm terminal çıkışını sakladım. Başlangıçta, Input/output error (5)toplamda 2GB toplam ihtiyacım olmayan dosyalar için birkaç yüz var . OSX Finder "disk kullanımı", yukarıdaki rapordaki gibi 608 değil, kaynağın 617 milyar bayttığını söylüyor.

Sorular:

  1. Ayrıntılı çıktının ilk kısmı (bir dosya listesi oluşturarak) kesinlikle Input/output error (5)kopyalanmayacak HER dosya için söylüyor mu?
  2. Bunlar code 23hariç tüm dosyaların Input/output error (5)başarıyla kopyalandığı anlamına mı geliyor ?

1
Muhtemelen yararlı: rsync hata mesajları "rsync:" ile başlıyor gibi görünmektedir, bu nedenle yardımcı grep '^rsync: ' outputolabilir.
barrycarter

Yanıtlar:


19

23 tek anlamı (man sayfasından):

23 Hata nedeniyle kısmi transfer

Aktarılamayan her şey için bir hata mesajı alırsınız. Hata mesajlarının dizinlerin açılması veya okunması ile ilgili olabileceğine dikkat edin, bu nedenle aktarılamayan her dosya için mutlaka bir hata mesajı görmezsiniz.

Kaynağınız değişmediyse, bu sefer gerçekten transfer yapmadan ne transfer edeceğini görmek için rsynctekrar -nkullanabilirsiniz.

Bayt farkı hakkında, rsyncsize dosyaların boyutunu verir (onlardan ne kadar veri okunabilir). Bunun yerine Findersize disk kullanımını söylemediğinden emin misiniz ?

Ayrıca NTFS'nin, verileri alternatif akışlarda veya dosyaların özniteliklerinde depolayabildiğini ve rsyncgenellikle bunları aktarmayacağını (farkında değil) (ve bunun da çoğunu hesaba katabileceğini) unutmayın.


Yani, aktarılmayan verilerin TÜMÜNÜ (ne kadar bozuk olursa olsun) başlangıçta listelendiğini mi söylüyorsunuz Input/output error (5)?
themirror,

bayt farkı ile ilgili: Evet bu doğru. Rsync'in raporu ile Finder'ın "disk kullanımı" arasındaki farkın neden 9 milyar bayt olduğunu, ancak sadece 2-3 milyar bayt dosyayı tanımlayabildiğim için kafam karıştı Input/output error (5). Açıklayabilir misin?
themirror

1
@themirror, 1 baytlık bir dosyanın depolamak için diskte ayrılan birkaç kilo bayta ihtiyacı olacaktır ( echo > file; du -k filekaynak dosya sisteminde ne kadar olduğunu görmeye çalışın , ancak ntfs'de genellikle 4k olur). rsyncSize boyutun olduğunu 1söyleyecektir, ancak Finder bu dosya için size 4096 diyebilir.
Stéphane Chazelas

@ themirror, ilk yorumunuzu yazıp, aktarılamayan her şey için (dosya içeriği, alternatif akışlarla ilgili düzenlemelerime bakın) hata alacağınızı söylüyorum, ancak bir dizin okuyamıyorsanız / foo , sonra açıkçası /foo/barve /foo/bar/bazya transfer edilmeyecek.
Stéphane Chazelas

17

Rsync -qbayrağını kullanarak rsync'in hata çıktısını susturabilirsiniz .

-q, --quiet                 suppress non-error messages

Eğer -qbayrakla tekrar rsync çalıştırırsanız , rsync muhtemelen hala başarısız olacaktır, fakat en azından bu sefer sorununuza neden olan herhangi bir hata mesajı dosya aktarımı durum mesajlarının satırlarına ve satırlarına gömülmeyecektir.


2

Re: hata 23 - Bu hatanın en yaygın nedeni, rsync kaynağına girilen küçük bir yazım hatası yapmaktır. Kaynak komutunuza bakın ve her şeyin ls'e göre kontrol edildiğinden emin olun ve fazladan bir boşluk veya 1 l'lik bir sorun gibi aptalca ince şeyleri arayın.


Aptalca olduğunu biliyorum, ancak bu aptalca hatayı yaptığımı fark edene kadar kodu incelemeye devam ettim bile. Teşekkür ederim!
rburhum
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.