Як я можу переглянути панель прогресу під час запуску rsync?


31

Я використовую Ubuntu 12.04 як репо, і я хотів би переглянути панель прогресу при використанні rsyncз командного рядка. Я спробував варіант, запропонований у цій статті ( -P), але я вважаю за краще бачити панель прогресу, а не використовувати Grsync. Я зараз використовую rsync -P source dest.


Ви це читали? stackoverflow.com/questions/238073/…
AB

Я ціную швидку реакцію. Я з нетерпінням чекаю дослідження цього.
Джозеф Сміт

Це було гарним початком, але мені потрібно знати, як зробити оновлення панелі прогресу під час роботи rsync. Друг сказав, що мені потрібно реалізувати розмір сервера та реалізувати команду watch з pipe.
Джозеф Сміт

Є відповідь :)
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 Ви були задоволені моєю відповіддю? Тоді дайте мені висновок (∧). Якби я міг вирішити вашу проблему, було б добре, якби ви позначили мою відповідь (✓). ;)
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 / indexices | awk 'NF' | wc -l)
Джозеф Сміт,

1
"$rsync_param"nдосить дивно; цитати означають, що він може працювати лише на опціях без пробілів, а приєднання nдо кінця означає, що він може працювати лише з короткими параметрами. Набагато зрозуміліше і простіше просто $rsync_param -n, що вказує на пробіг, не покладаючись на формат rsync_param, і, не цитуючи його, можуть бути включені і довгі варіанти
Ізката

Працював перший раз, за ​​винятком поміченого, він не показує швидкість передачі
Ciasto piekarz

36

rsync має --infoопцію, яка може бути використана не тільки для виведення поточного прогресу, але і швидкості передачі та минулого часу:

--info=FLAGS            fine-grained informational verbosity

Пояснення, як його використовувати, міститься під -Pопцією на сторінці 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.)

Отже, наступне:

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 | wc -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. Клацніть правою кнопкою миші у своєму досліднику папок і перейдіть до "Витягнути сюди".
  3. Введіть вилучену папку (наприклад: "rsync-3.1.3")
  4. Клацніть правою кнопкою миші по екрану в менеджері папок і перейдіть до "Відкрити в терміналі". Крім того, виконайте кроки 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 match", поки не знайдете запит, який шукаєте:

    Також є --info=progress2варіант, який виводить статистику на основі всієї передачі, а не окремих файлів. Використовуйте цей прапор, не виводячи імені файлу (наприклад, уникайте -vчи вказуйте --info=name0), якщо ви хочете побачити, як відбувається передача, не прокручуючи екран з великою кількістю імен. (Для використання вам не потрібно вказувати --progressпараметр --info=progress2.)

Також дивіться: "Як користуватися rsync", автор Габріель Степлес: 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.