Я использую Ubuntu 12.04 в качестве репозитория и хотел бы видеть индикатор выполнения при использовании rsync
из командной строки. Я попробовал вариант , предложенный в этой статье (-P
), но я предпочитаю видеть индикатор выполнения, а не использовать Grsync. Я использую rsync -P source dest
в настоящее время.
Как насчет этого?
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
a/
источник b
, цель Это наконец работало:
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)
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)
Примечание, которое, когда передача запускает общее количество блоков и поэтому текущий прогресс, может измениться, когда рекурсивная опция используется, поскольку больше файлов обнаружено для синхронизации
Можно использовать --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
Если Ваша версия rsync
не принимает --info=progress2
опция, можно использовать tqdm
:
Для установки:
pip install tqdm
Для использования:
$ rsync -av /source /dest | tqdm --unit_scale | wc -l 10.0Mit [00:02, 3.58Mit/s]
Да, сделайте то, что сказал Jon: используйте --info=progress2
опция. Но, что я делаю, если моя версия rsync слишком стара и не поддерживает эту опцию? Ответ: обновление rsync!
rsync
из источника на Ubuntu(протестированный на Ubuntu 16.04)
cd
редактор в этот извлеченный каталог, содержащий rsync
исходный код. Проверьте текущую версию rsync
. Сделайте примечание этого так, Вы видите позже, что оно на самом деле было обновлено.
rsync --version
Установите необходимые инструменты:
sudo apt update
sudo apt install yodl
Сборка:
./configure
make
sudo make install
Удостоверьтесь, что это было обновлено:
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.
Ищите страницы справочника "progress2". У Вас теперь будет доступ к --info=progress2
опция:
man rsync
... затем нажмите /
ключ и тип progress2
; нажмите Enter для поиска его;пресса n
для 'n'ext соответствие, пока Вы не находите запись, которую Вы ищете:
Существует также a
--info=progress2
опция, что выходная статистика на основе целой передачи, а не отдельные файлы. Используйте этот флаг, не производя имя файла (например, избегайте-v
или укажите--info=name0
) если Вы хотите видеть, как передача обходится без прокрутки экрана с большим количеством имен. (Вы не должны указывать--progress
опция для использования--info=progress2
.)