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

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

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

решение1

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)

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

решение2

Вы можете использовать параметры --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

Отman-страница/explainshell:

-a, --archive
-v, --verbose
-z, --compress
-h, --human-readable

--progress  This  option  tells  rsync to print information showing
 the progress of the transfer. This gives a bored user something to
 watch.  Implies --verbose if it wasn’t already specified.

--stats  This  tells  rsync to print a verbose set of statistics on
 the file transfer, allowing you to tell how effective rsync’s
 delta-transfer algorithm is for your data.

решение3

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

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это цель

решение4

Наконец-то это сработало:

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)

Связанный контент