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

5

Добрый день,

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

    
задан Joseph Smith 14.04.2015 в 19:04
источник

5 ответов

5

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

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 является целью
ответ дан A.B. 15.04.2015 в 07:46
источник
5

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)

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

    
ответ дан Jon 22.04.2017 в 11:46
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)
    
ответ дан Joseph Smith 28.04.2015 в 12:29
1

Вы можете использовать параметры --progress и --stats .

rsync -avzh --progress --stats [email protected]:/path/to/file output_name

[email protected]'s password: 
receiving incremental file list
file
         98.19M  54%    8.99MB/s    0:00:08
    
ответ дан fugitive 23.04.2017 в 12:04
0

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

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

pip install tqdm

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

$ rsync -av /source /dest | tqdm --unit_scale | wc -l
10.0Mit [00:02, 3.58Mit/s]
    
ответ дан ostrokach 26.07.2017 в 20:10