Rsync bireysel dosya için ilerleme durumunu gösterir


21

Oldukça büyük bir dosyayı (20Gb) yüklemek / indirmek için rsync kullanıyorum. İlerleme seçeneğinin farkındayım, ancak benim durumumda yaptığı şey bana sadece sonucu gösteriyor.

Benim sorunum bazı kararsız bağlantı sırasında - hala indirme / yükleme veya bir şeyler ters gitti bilmiyorum. Tek bir dosya için ilerleme çubuğunu göstermenin bir yolu var mı? Varsayılan olarak ne yaparsa benzer bir şey?

Teşekkürler!


4
Ben 10+ yıldır rsync kullandım ve bu soruyu hiç sormadım inanamıyorum.
slm

Yanıtlar:


17

Bu senin peşinde olduğun şey olabilir.

% rsync -avvz --times --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    /usr/include/glib-2.0 my-glib-copy/

Anahtarların bozulması aşağıdaki gibidir:

  • -avvz = arşiv, ayrıntılı x 2, sıkıştır
  • --times = değişiklik sürelerini koru
  • --stats = bazı dosya aktarım istatistikleri verin
  • --checksum = mod-time ve boyuta göre değil, checksum'a göre atla
  • - insan tarafından okunabilir = insan tarafından okunabilir biçimde çıktı numaraları
  • --acls = ACL'leri koru (-p anlamına gelir)
  • --itemize-changes = tüm güncellemeler için bir değişiklik özeti çıktılar
  • --progress = aktarım sırasında ilerlemeyi göster
  • --out-format = '[% t] [% i] (Son Değiştirme:% M) (bayt:% -10l)% -100n'
    • % t = geçerli tarih saati
    • % i = güncellenen öğelerin ayrıntılı listesi
    • % M = dosyanın son değiştirilme zamanı
    • % -10l = dosyanın bayt cinsinden uzunluğu (-10 hizalama ve kesinlik içindir)
    • % -100n = dosya adı (kısa biçim; izleyen "/" yön) (-100 hizalama ve kesinlik içindir)

NOT: man sayfalarına bakın rsyncve rsyncd.confyukarıdaki anahtarları üzerinde tüm detaylar için.

Yukarıdaki komut aşağıdaki transkripti üretir:

sending incremental file list
delta-transmission disabled for local transfer or --whole-file
[2012/12/23 21:34:46] [cd+++++++++] (Last Modified: 2010/12/19-08:13:31) (bytes: 4096      ) glib-2.0/
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 1511      ) glib-2.0/glib-object.h
       1.51K 100%    0.00kB/s    0:00:00
       1.51K 100%    0.00kB/s    0:00:00 (xfer#1, to-check=181/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 2910      ) glib-2.0/glib.h
       2.91K 100%    2.78MB/s    0:00:00
       2.91K 100%    2.78MB/s    0:00:00 (xfer#2, to-check=180/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 3613      ) glib-2.0/gmodule.h
       3.61K 100%    3.45MB/s    0:00:00
       3.61K 100%    3.45MB/s    0:00:00 (xfer#3, to-check=179/183)
...
...
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8431      ) glib-2.0/gobject/gvaluecollector.h
       8.43K 100%  141.96kB/s    0:00:00
       8.43K 100%  141.96kB/s    0:00:00 (xfer#178, to-check=1/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8507      ) glib-2.0/gobject/gvaluetypes.h
       8.51K 100%  143.23kB/s    0:00:00
       8.51K 100%  143.23kB/s    0:00:00 (xfer#179, to-check=0/183)
total: matches=0  hash_hits=0  false_alarms=0 data=1305506

rsync[2996] (sender) heap statistics:
  arena:         540672   (bytes from sbrk)
  ordblks:            3   (chunks not in use)
  smblks:             7
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        942080   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          592
  uordblks:      404784   (bytes used)
  fordblks:      135888   (bytes free)
  keepcost:      134240   (bytes in releasable chunk)

rsync[2999] (server receiver) heap statistics:
  arena:         286720   (bytes from sbrk)
  ordblks:            2   (chunks not in use)
  smblks:             8
  hblks:              3   (chunks from mmap)
  hblkhd:        667648   (bytes from mmap)
  allmem:        954368   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          672
  uordblks:      174480   (bytes used)
  fordblks:      112240   (bytes free)
  keepcost:      102352   (bytes in releasable chunk)

rsync[2998] (server generator) heap statistics:
  arena:         233472   (bytes from sbrk)
  ordblks:            4   (chunks not in use)
  smblks:             6
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        634880   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          448
  uordblks:       83152   (bytes used)
  fordblks:      150320   (bytes free)
  keepcost:      131120   (bytes in releasable chunk)

Number of files: 183
Number of files transferred: 179
Total file size: 1.31M bytes
Total transferred file size: 1.31M bytes
Literal data: 1.31M bytes
Matched data: 0 bytes
File list size: 6.30K
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 350.39K
Total bytes received: 3.43K

sent 350.39K bytes  received 3.43K bytes  707.64K bytes/sec
total size is 1.31M  speedup is 3.69

Rsync'in yeni sürümlerinde İlerleme Çubuğu?

Bu SF sorusuyla karşılaştım:

Yanıtlardan biri, daha yeni sürümlerinde rsyncartık bir ilerleme çubuğu desteği olduğunu belirtti. Şöyle görünüyor:

% ./rsync -a --info=progress2 /usr .
    305,002,533  80%   65.69MB/s    0:00:01  xfr#1653, ir-chk=1593/3594)

Bu ilerleme çubuğu aktarımda tek tek dosyaların durumunu göstermez, ancak toplam aktarmanın yüzdesini gösterebilir, bu da yardımcı olabilir.


1
Cevap için teşekkürler. Hala tam olarak aradığım şey değil. Gerçekten ihtiyacım olan tek bir dosyayı indirdiğinizde (diyelim ki glib-2.0 / glib-object.h) - bana sadece bu dosya için bir ilerleme çubuğu gösterecektir . Glib-2.0 / glib-object.h dosyasının 20Gb olduğunu hayal edin. Hala indirilip indirilmediğini ve ne kadar zaman kaldığını nasıl anlarsınız?
Somon


1

Daemon modunda rsync mi kullanıyorsunuz? Rsync'in varsayılan davranışı (Debian 6'da) nasıl istediğinizdir. Ancak, rsyncd.conf man sayfasında daemon modunda varsayılan davranış olduğunu buluyorum:

aktarım günlüğü
Bu parametre, indirme ve yükleme işlemlerinin ftp artalan süreçleri tarafından kullanılana benzer bir biçimde dosya başına günlüğe kaydedilmesini sağlar. Arka plan programı her zaman sonunda aktarımı günlüğe kaydeder, bu nedenle aktarım iptal edilirse, günlük dosyasında hiçbir söz edilmeyecektir.
Günlük satırlarını özelleştirmek istiyorsanız, "günlük biçimi" parametresine bakın.

Yani rsync'i daemon modunda kullanıyorsanız, rsyncd.conf dosyasına "transfer logging" satırını eklemeniz gerekecek gibi görünüyor.


Hayır, deamon modunda değilim ve her dosya için ilerleme çubuğunu görmüyorum , sadece tüm sürecin özeti
Salmon

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.