Bagaimana saya bisa melihat bilah kemajuan ketika menjalankan rsync?

Saya menggunakan Ubuntu 12.04 sebagai repo dan ingin melihat progress bar ketika menggunakan rsync dari command line. Saya mencoba opsi yang disarankan dalam artikel ini (-P), tetapi saya lebih suka melihat progress bar dan tidak menggunakan Grsync. Saya menggunakan rsync -P source dest saat ini.

rsync memiliki opsi --info yang dapat digunakan untuk tidak hanya menampilkan kemajuan saat ini, tetapi juga kecepatan transfer dan waktu yang telah berlalu:

--info=FLAGS            fine-grained informational verbosity

Penjelasan tentang bagaimana menggunakannya ada di bawah opsi -P di halaman man:

-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.)

Jadi berikut ini:

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

Menghasilkan output berikut ini dan terus diperbarui:

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

Perhatikan bahwa ketika transfer dimulai, jumlah total potongan, dan oleh karena itu kemajuan saat ini, dapat berubah ketika opsi rekursif digunakan karena lebih banyak file ditemukan untuk disinkronkan

Komentar (0)
Larutan

Bagaimana dengan ini?

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

Menghindari input ganda dari parameter

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

Menentukan jumlah langkah yang harus diselesaikan.

  • a/b
  1. a/ adalah sumber
  2. b adalah target
Komentar (5)

Ini akhirnya berhasil:

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)
Komentar (0)