Как просмотреть индикатор выполнения при запуске rsync?

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

31
задан 14 November 2018 в 12:39

6 ответов

Как насчет этого?

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, цель
13
ответ дан 14 November 2018 в 22:39

Это наконец работало:

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)
2
ответ дан 14 November 2018 в 22:39

rsync имеет --info опция, которая может привыкнуть к не, только производит текущий прогресс, но также и скорость передачи и прошедшее время:

--info=FLAGS            fine-grained informational verbosity

объяснение того, как использовать его, происходит под -P опция в странице справочника:

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

Примечание, которое, когда передача запускает общее количество блоков и поэтому текущий прогресс, может измениться, когда рекурсивная опция используется, поскольку больше файлов обнаружено для синхронизации

31
ответ дан 14 November 2018 в 22:39

Можно использовать --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
12
ответ дан 14 November 2018 в 22:39

Если Ваша версия rsync не принимает --info=progress2 опция, можно использовать tqdm :

Для установки:

pip install tqdm

Для использования:

$ rsync -av /source /dest | tqdm --unit_scale | wc -l
10.0Mit [00:02, 3.58Mit/s]
1
ответ дан 14 November 2018 в 22:39

Да, сделайте то, что сказал Jon: используйте --info=progress2 опция. Но, что я делаю, если моя версия rsync слишком стара и не поддерживает эту опцию? Ответ: обновление rsync!

Вот то, как создать rsync из источника на Ubuntu

(протестированный на Ubuntu 16.04)

  1. Загрузите последнюю версию rsync: https://download.samba.org/pub/rsync/src/. Исключая: "rsync-3.1.3.tar.gz". Сохраните его в каталоге WITH NO SPACES AT ALL, чтобы гарантировать, что это создает право.
  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 соответствие, пока Вы не находите запись, которую Вы ищете:

    Существует также a --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
0
ответ дан 3 August 2019 в 19:18

Другие вопросы по тегам:

Похожие вопросы: