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
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
a/
adalah sumberb
adalah targetIni 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)