ฉันใช้ Ubuntu 12.04 เป็น repo และต้องการดูแถบความคืบหน้าเมื่อใช้rsync
จากบรรทัดคำสั่ง ฉันลองตัวเลือกที่แนะนำในบทความนี้ ( -P
) แต่ฉันต้องการเห็นแถบความคืบหน้าและไม่ใช้ Grsync ฉันกำลังใช้งานrsync -P source dest
อยู่
ฉันใช้ Ubuntu 12.04 เป็น repo และต้องการดูแถบความคืบหน้าเมื่อใช้rsync
จากบรรทัดคำสั่ง ฉันลองตัวเลือกที่แนะนำในบทความนี้ ( -P
) แต่ฉันต้องการเห็นแถบความคืบหน้าและไม่ใช้ Grsync ฉันกำลังใช้งานrsync -P source dest
อยู่
คำตอบ:
แล้วเรื่องนี้ล่ะ
rsync_param="-av"
rsync "$rsync_param" a/ b |\
pv -lep -s $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
$rsync_param
หลีกเลี่ยงการป้อนพารามิเตอร์สองครั้ง
$(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
กำหนดจำนวนขั้นตอนที่ต้องทำให้เสร็จ
a/ b
a/
เป็นแหล่งที่มาb
เป็นเป้าหมาย"$rsync_param"n
ค่อนข้างแปลก เครื่องหมายคำพูดหมายความว่าสามารถทำงานกับตัวเลือกที่ไม่มีช่องว่างเท่านั้นและการแนบn
ไปยังส่วนท้ายหมายความว่าสามารถทำงานกับตัวเลือกแบบสั้นเท่านั้น ชัดเจนและง่ายกว่ามากคือเพียง$rsync_param -n
ระบุการทำงานแบบแห้งโดยไม่ต้องพึ่งพารูปแบบของrsync_param
และโดยไม่ต้องอ้างถึงก็สามารถรวมตัวเลือกแบบยาวได้ด้วย
rsync มี--info
ตัวเลือกที่สามารถใช้เพื่อไม่เพียง แต่ส่งออกความคืบหน้าปัจจุบัน แต่ยังอัตราการถ่ายโอนและเวลาที่ผ่านไป:
--info=FLAGS fine-grained informational verbosity
คำอธิบายวิธีการใช้งานนั้นอยู่ภายใต้-P
ตัวเลือกใน man page:
-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.)
ดังนั้นต่อไปนี้:
rsync -r --info=progress2 --info=name0 "$src" "$dst"
ผลลัพธ์ในผลลัพธ์เป็นผลลัพธ์และมีการปรับปรุงอย่างต่อเนื่อง
18,757,542,664 100% 65.70MB/s 0:04:32 (xfr#1389, to-chk=0/1510)
โปรดทราบว่าเมื่อการถ่ายโอนเริ่มต้นจำนวนชิ้นทั้งหมดและดังนั้นความคืบหน้าปัจจุบันสามารถเปลี่ยนได้เมื่อใช้ตัวเลือกการเรียกซ้ำเนื่องจากมีการค้นพบไฟล์เพิ่มเติมสำหรับการซิงค์
คุณสามารถใช้--progress
และ--stats
พารามิเตอร์
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
ในที่สุดก็ใช้งานได้:
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)
หากเวอร์ชันของคุณrsync
ไม่ยอมรับ--info=progress2
ตัวเลือกคุณสามารถใช้tqdm
:
ติดตั้ง:
pip install tqdm
ใช้:
$ rsync -av / source / dest | tqdm --unit_scale | ห้องสุขา -l 10.0Mit [00:02, 3.58Mit / s]
ใช่ทำสิ่งที่จอนพูด : ใช้--info=progress2
ตัวเลือก แต่ฉันจะทำอย่างไรถ้า rsync เวอร์ชันเก่าเกินไปและไม่รองรับตัวเลือกนี้ คำตอบ: อัปเกรด rsync!
rsync
จากแหล่งบน Ubuntu(ทดสอบบน Ubuntu 16.04)
cd
แก้ไขลงในไดเรกทอรีที่แยกนี้ซึ่งมีrsync
ซอร์สโค้ดrsync
ตรวจสอบรุ่นปัจจุบันของ จดบันทึกสิ่งนี้เพื่อให้คุณสามารถดูภายหลังได้รับการปรับปรุงจริง
rsync --version
ติดตั้งเครื่องมือที่จำเป็น:
sudo apt update
sudo apt install yodl
สร้าง:
./configure
make
sudo make install
ตรวจสอบให้แน่ใจว่ามันได้รับการปรับปรุง:
rsync --version
ตัวอย่างผลลัพธ์:
$ 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.
ค้นหาหน้าคนสำหรับ "progress2" ตอนนี้คุณจะสามารถเข้าถึง--info=progress2
ตัวเลือก:
man rsync
... จากนั้นกด/
ปุ่มและประเภทprogress2
; กด Enter เพื่อค้นหา กดn
เพื่อจับคู่ 'n'ext จนกว่าคุณจะพบรายการที่คุณกำลังมองหา:
นอกจากนี้ยังมี
--info=progress2
ตัวเลือกที่แสดงผลสถิติตามการถ่ายโอนทั้งหมดแทนที่จะเป็นไฟล์เดี่ยว ๆ ใช้แฟล็กนี้โดยไม่แสดงชื่อไฟล์ (เช่นหลีกเลี่ยง-v
หรือระบุ--info=name0
) หากคุณต้องการดูว่าการถ่ายโอนนั้นทำได้อย่างไรโดยไม่ต้องเลื่อนหน้าจอด้วยชื่อจำนวนมาก (คุณไม่จำเป็นต้องระบุ--progress
ตัวเลือกเพื่อใช้งาน--info=progress2
)