RSync çalışırken bir ilerleme çubuğunu nasıl görebilirim?


31

Ubuntu 12.04'ü repo olarak kullanıyorum rsyncve komut satırından kullanırken bir ilerleme çubuğu görüntülemek istiyorum . Bu makalede ( -P) önerilen seçeneği denedim , ancak bir ilerleme çubuğu görmeyi ve Grsync'i kullanmamayı tercih ediyorum. rsync -P source destŞu anda kullanıyorum .



Hızlı tepki için teşekkür ederim. Bunu araştırmayı dört gözle bekliyorum.
Joseph Smith

Bu iyi bir başlangıçtı, ancak rsync çalışırken ilerleme çubuğunun nasıl güncelleneceğini bilmem gerekiyor. Bir arkadaşım, sunucu boyutunu uygulamam ve boru ile bir saat komutu uygulamam gerektiğini söyledi.
Joseph Smith

Bir cevap var :)
AB

Yanıtlar:


7

Buna ne dersin?

rsync_param="-av"
rsync "$rsync_param" a/ b |\
     pv -lep -s $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
  • $rsync_param

    Parametrelerin çift girişini önler

  • $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)

    Tamamlanacak adım sayısını belirler.

  • a/ b

    1. a/ kaynak
    2. b hedef

1
@JosephSmith Cevabımdan memnun kaldınız mı? O zaman bana bir oy ver (∧). Sorununuzu çözebilseydim, cevabımı işaretlerseniz daha iyi olurdu (✓). ;)
AB

Bunu birkaç gün önce kocaman bir gülümsemeyle kabul ettim. Sadece seçildim ve yine de kabul ettim. Oy kullanabileceğimi sanmıyorum çünkü yeterli kredim yok. Yardımınız için teşekkürler.
Joseph Smith'in

Neden hata aldığıma dair bir fikrim var, dosya veya dizin bulunamadı? Çalıştırdığım komut: root @ cto: / repo / ubuntu # rsync "$ rsync_param" -a --prune-empty-dirs --exclude "* .iso" archive.ubuntu.com/ubuntu/indices/ / repo / ubuntu / endeksler | pv -lep -s $ (rsync "$ rsync_param" n archive.ubuntu.com/indices/ / repo / ubuntu / indices | awk 'NF' | wc -l)
Joseph Smith

1
"$rsync_param"noldukça garip; tırnak, sadece boşluksuz seçenekler üzerinde çalışabileceği nanlamına gelir ve sonuna sonuna eklenmesi yalnızca kısa seçeneklerle çalışabileceği anlamına gelir. Çok daha net ve kolay olan, basitçe $rsync_param -n, ki bu, formatına güvenmeden kuru çalışmayı belirtir rsync_paramve alıntı yapmadan uzun seçenekler de dahil edilebilir
Izkata

İlk kez çalıştı, fark edilmediği sürece transfer oranı göstermiyor
Ciasto piekarz

36

rsync, --infoyalnızca mevcut ilerlemeyi değil aynı zamanda aktarım hızını ve geçen süreyi çıktılamak için kullanılabilecek bir seçeneğe sahiptir :

--info=FLAGS            fine-grained informational verbosity

Nasıl kullanılacağının açıklaması -Pman sayfasındaki seçenek altında gelir :

-P     The -P option is equivalent to --partial --progress.  Its purpose is to
       make it much easier to specify these two options for a long transfer that
       may be interrupted.

       There is also a --info=progress2 option that outputs statistics based on
       the whole transfer, rather than individual files.  Use this flag
       without  out‐putting  a  filename  (e.g. avoid -v or specify --info=name0)
       if you want to see how the transfer is doing without scrolling the screen 
       with  a  lot  of names.   (You  don’t  need  to specify the --progress
       option in order to use --info=progress2.)

Yani aşağıdakiler:

rsync -r --info=progress2 --info=name0 "$src" "$dst"

Aşağıdakilerin çıktısı alındığı ve sürekli olarak güncellendiği sonuçları:

18,757,542,664 100%   65.70MB/s    0:04:32 (xfr#1389, to-chk=0/1510)

Aktarım başladığında toplam parça sayısının ve bu nedenle mevcut ilerlemenin, özyineleme için daha fazla dosya keşfedildiğinde özyinelemeli seçenek kullanıldığında değişebileceğini unutmayın.


16

--progressVe --statsparametrelerini kullanabilirsiniz .

rsync -avzh --progress --stats root@server:/path/to/file output_name

root@server's password: 
receiving incremental file list
file
         98.19M  54%    8.99MB/s    0:00:08

2
Bu benim için macOS'ta çalıştı.
mango

2

Bu nihayet çalıştı:

rsync "$rsync_param" -a --prune-empty-dirs --exclude "*.iso" rsync://archive.ubuntu.com/ubuntu/indices/ /repo/ubuntu/indices | pv -lep -s $(rsync "$rsync_param"n rsync://archive.ubuntu.com/indices/ /repo/ubuntu/indices | awk 'NF' | wc -l)

1

Sürümünüz seçeneği rsynckabul etmiyorsa --info=progress2, şunları kullanabilirsiniz tqdm:

Yüklemek:

pip install tqdm

Kullanmak:

$ rsync -av / kaynak / dest | tqdm - unit_scale | wc -l
10.0Mit [00:02, 3,58Mit / s]

0

Evet, Jon'un dediğini yap : --info=progress2seçeneği kullan. Ancak, rsync sürümüm çok eskiyse ve bu seçeneği desteklemiyorsa ne yapabilirim? Cevap: yükseltme rsync!

İşte rsyncUbuntu'daki kaynaktan nasıl derleneceği

(Ubuntu 16.04’te test edilmiştir)

  1. Rsync'in en son sürümünü indirin: https://download.samba.org/pub/rsync/src/ . Ör .: "rsync-3.1.3.tar.gz". Doğru kurulduğundan emin olmak için TÜMÜNDE NO SPACES YOK bir dizine kaydedin.
  2. Klasör gezginizde, sağ tıklayın ve "Buradan Çıkartın" bölümüne gidin.
  3. Çıkarılan klasörü girin (örneğin: "rsync-3.1.3")
  4. Klasör yöneticinizdeki ekranı sağ tıklayın ve "Terminalde Aç" seçeneğine gidin. Alternatif olarak, 2 ile 4 arasındaki adımları komut satırında el ile yapın. Sonuçta kaynak kodunu cdiçeren bu ayıklanmış dizine girmeniz yeterlidir rsync.
  5. Geçerli sürümünü kontrol et rsync. Bunu not edin, böylece daha sonra gerçekten güncellendiğini görebilirsiniz.

    rsync --version
    
  6. Gerekli araçları yükleyin:

    sudo apt update
    sudo apt install yodl
    
  7. İnşa etmek:

    ./configure
    make
    sudo make install
    
  8. Güncellendiğinden emin olun:

    rsync --version
    

    Örnek çıktı:

    $ rsync --version
    rsync  version 3.1.3  protocol version 31
    Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
    Web site: http://rsync.samba.org/
    Capabilities:
        64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
        socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
        append, no ACLs, xattrs, iconv, symtimes, prealloc
    
    rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
    are welcome to redistribute it under certain conditions.  See the GNU
    General Public Licence for details.
    
  9. "Progress2" için man sayfalarını arayın. Şimdi --info=progress2seçeneğe erişebileceksiniz :

    man rsync
    

    ... ardından tuşuna basın /ve yazın progress2; aramak için Enter tuşuna basın; nAradığınız girişi bulana kadar 'n'ext match için basın :

    --info=progress2Tek tek dosyalar yerine, tüm aktarımı temel alan istatistikleri çıkaran bir seçenek de vardır . Aktarımın ekrana çok fazla ad girmeden nasıl yapıldığını görmek istiyorsanız, bir dosya adı vermeden bu bayrağı kullanın (örneğin, önlemek -vveya belirtin --info=name0). (Kullanmak için --progressseçeneği belirtmeniz gerekmez --info=progress2.)

Ayrıca bakınız: Gabriel Staples tarafından "rsync nasıl kullanılır": https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264

Kısmi Referanslar:

  1. http://www.beginninglinux.com/home/backup/compile-rsync-from-source-on-ubuntu
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.