ฉันจะดูแถบความคืบหน้าเมื่อใช้ rsync ได้อย่างไร


31

ฉันใช้ Ubuntu 12.04 เป็น repo และต้องการดูแถบความคืบหน้าเมื่อใช้rsyncจากบรรทัดคำสั่ง ฉันลองตัวเลือกที่แนะนำในบทความนี้ ( -P) แต่ฉันต้องการเห็นแถบความคืบหน้าและไม่ใช้ Grsync ฉันกำลังใช้งานrsync -P source destอยู่


คุณอ่านสิ่งนี้แล้วหรือยัง? stackoverflow.com/questions/238073/…
AB

ฉันขอขอบคุณการตอบสนองที่รวดเร็ว ฉันหวังว่าจะทำการวิจัยนี้
โจเซฟสมิ ธ

นั่นเป็นการเริ่มต้นที่ดี แต่ฉันจำเป็นต้องทราบวิธีการอัปเดตแถบความคืบหน้าขณะที่ rsync ทำงาน เพื่อนบอกว่าฉันต้องใช้ขนาดเซิร์ฟเวอร์และใช้คำสั่ง watch กับไพพ์
โจเซฟสมิ ธ

มีคำตอบ :) มี
AB

คำตอบ:


7

แล้วเรื่องนี้ล่ะ

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

    1. a/ เป็นแหล่งที่มา
    2. b เป็นเป้าหมาย

1
@JosephSmith คุณพอใจกับคำตอบของฉันหรือไม่? จากนั้นให้ฉัน upvote (∧) ถ้าฉันสามารถแก้ปัญหาของคุณได้มันคงจะดีถ้าคุณทำเครื่องหมายคำตอบของฉัน (✓) ;)
AB

ฉันยอมรับสิ่งนี้เมื่อสองสามวันก่อนด้วยรอยยิ้มอันยิ่งใหญ่ ฉันเพิ่งยกเลิกการเลือกและยอมรับอีกครั้งว่า ฉันไม่คิดว่าฉันจะโหวตได้เพราะฉันมีเครดิตไม่เพียงพอ ขอบคุณสำหรับความช่วยเหลือ btw
โจเซฟสมิ ธ

ความคิดเห็นใด ๆ ที่ฉันได้รับข้อผิดพลาดไม่พบไฟล์หรือไดเรกทอรี คำสั่งที่ฉันใช้คือ: root @ cto: / repo / ubuntu # rsync "$ rsync_param" -a --prune-empty-dirs --exclude "* .iso" archive.ubuntu.com/ubuntu/indices/ / repo / ubuntu / ดัชนี | pv -lep -s $ (rsync "$ rsync_param" n archive.ubuntu.com/indices/ / repo / ubuntu / ดัชนี | awk 'NF' | wc -l)
โจเซฟสมิ ธ

1
"$rsync_param"nค่อนข้างแปลก เครื่องหมายคำพูดหมายความว่าสามารถทำงานกับตัวเลือกที่ไม่มีช่องว่างเท่านั้นและการแนบnไปยังส่วนท้ายหมายความว่าสามารถทำงานกับตัวเลือกแบบสั้นเท่านั้น ชัดเจนและง่ายกว่ามากคือเพียง$rsync_param -nระบุการทำงานแบบแห้งโดยไม่ต้องพึ่งพารูปแบบของrsync_paramและโดยไม่ต้องอ้างถึงก็สามารถรวมตัวเลือกแบบยาวได้ด้วย
Izkata

ทำงานครั้งแรกยกเว้นสังเกตเห็นมันไม่ได้แสดงอัตราการถ่ายโอน
Ciasto piekarz

36

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)

โปรดทราบว่าเมื่อการถ่ายโอนเริ่มต้นจำนวนชิ้นทั้งหมดและดังนั้นความคืบหน้าปัจจุบันสามารถเปลี่ยนได้เมื่อใช้ตัวเลือกการเรียกซ้ำเนื่องจากมีการค้นพบไฟล์เพิ่มเติมสำหรับการซิงค์


16

คุณสามารถใช้--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

2
สิ่งนี้ใช้ได้กับฉันใน macOS
มะม่วง

2

ในที่สุดก็ใช้งานได้:

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

หากเวอร์ชันของคุณrsyncไม่ยอมรับ--info=progress2ตัวเลือกคุณสามารถใช้tqdm:

ติดตั้ง:

pip install tqdm

ใช้:

$ rsync -av / source / dest | tqdm --unit_scale | ห้องสุขา -l
10.0Mit [00:02, 3.58Mit / s]

0

ใช่ทำสิ่งที่จอนพูด : ใช้--info=progress2ตัวเลือก แต่ฉันจะทำอย่างไรถ้า rsync เวอร์ชันเก่าเกินไปและไม่รองรับตัวเลือกนี้ คำตอบ: อัปเกรด rsync!

นี่คือวิธีการสร้างrsyncจากแหล่งบน Ubuntu

(ทดสอบบน Ubuntu 16.04)

  1. ดาวน์โหลดรุ่นล่าสุดของ rsync: https://download.samba.org/pub/rsync/src/ เช่น: "rsync-3.1.3.tar.gz" บันทึกไว้ในไดเรกทอรีที่ไม่มีพื้นที่ว่างทั้งหมดเพื่อให้แน่ใจว่ามันถูกต้อง
  2. ใน explorer โฟลเดอร์ของคุณคลิกขวาและไปที่ "แยกที่นี่"
  3. ป้อนโฟลเดอร์ที่แตกไฟล์ (เช่น: "rsync-3.1.3")
  4. คลิกขวาที่หน้าจอในเครื่องมือจัดการโฟลเดอร์ของคุณแล้วไปที่ "เปิดใน Terminal" หรือทำขั้นตอนที่ 2 ถึง 4 ด้วยตนเองบนบรรทัดคำสั่ง ในที่สุดคุณเพียงแค่ต้องได้รับการcdแก้ไขลงในไดเรกทอรีที่แยกนี้ซึ่งมีrsyncซอร์สโค้ด
  5. rsyncตรวจสอบรุ่นปัจจุบันของ จดบันทึกสิ่งนี้เพื่อให้คุณสามารถดูภายหลังได้รับการปรับปรุงจริง

    rsync --version
    
  6. ติดตั้งเครื่องมือที่จำเป็น:

    sudo apt update
    sudo apt install yodl
    
  7. สร้าง:

    ./configure
    make
    sudo make install
    
  8. ตรวจสอบให้แน่ใจว่ามันได้รับการปรับปรุง:

    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.
    
  9. ค้นหาหน้าคนสำหรับ "progress2" ตอนนี้คุณจะสามารถเข้าถึง--info=progress2ตัวเลือก:

    man rsync
    

    ... จากนั้นกด/ปุ่มและประเภทprogress2; กด Enter เพื่อค้นหา กดnเพื่อจับคู่ 'n'ext จนกว่าคุณจะพบรายการที่คุณกำลังมองหา:

    นอกจากนี้ยังมี--info=progress2ตัวเลือกที่แสดงผลสถิติตามการถ่ายโอนทั้งหมดแทนที่จะเป็นไฟล์เดี่ยว ๆ ใช้แฟล็กนี้โดยไม่แสดงชื่อไฟล์ (เช่นหลีกเลี่ยง -vหรือระบุ--info=name0) หากคุณต้องการดูว่าการถ่ายโอนนั้นทำได้อย่างไรโดยไม่ต้องเลื่อนหน้าจอด้วยชื่อจำนวนมาก (คุณไม่จำเป็นต้องระบุ--progressตัวเลือกเพื่อใช้งาน--info=progress2)

ดูเพิ่มเติม: "วิธีใช้ rsync" โดย Gabriel Staples: https://superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264

บางส่วนอ้างอิง:

  1. http://www.beginninglinux.com/home/backup/compile-rsync-from-source-on-ubuntu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.