运行rsync时如何查看进度条?


31

我正在使用Ubuntu 12.04作为存储库,并且想rsync从命令行使用时查看进度条。我尝试了本文-P)中建议的选项,但我更喜欢看到进度条,而不使用Grsync。我rsync -P source dest目前正在使用。



我感谢您的快速回应。我期待对此进行研究。
约瑟夫·史密斯

这是一个好的开始,但是我需要知道如何在rsync正常工作时更新进度条。一位朋友说,我需要实现服务器的大小并通过管道实现watch命令。
约瑟夫·史密斯

有一个答案:)
AB

Answers:


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

我几天前笑着接受了这个。我只是取消选择并再次接受它。我认为我不能投票,因为我没有足够的信誉。感谢您的协助。
约瑟夫·史密斯

为什么我会收到错误提示,找不到文件或目录?我运行的命令是:root @ cto:/ repo / ubuntu#rsync“ $ rsync_param” -a --prune-empty-dirs-排除“ * .iso” archive.ubuntu.com/ubuntu/indices/ / repo / ubuntu / indices | pv -lep -s $(rsync“ $ rsync_param” n archive.ubuntu.com/indices/ / repo / ubuntu / indices | awk'NF'| wc -l)
Joseph Smith

1
"$rsync_param"n很奇怪 引号表示它只能在没有空格的选项上运行,而将附加n到末尾意味着只能使用简短选项。简单地说$rsync_param -n,它更清晰,更容易,它指定了空运行而不依赖于的格式rsync_param,并且通过不引用它,也可以包括长选项
Izkata

第一次工作,除非注意到它没有显示传输速率
Ciasto piekarz

36

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)

请注意,当传输开始时,块的总数(因此当前进度)在使用递归选项时可能会发生变化,因为发现了更多文件进行同步


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“下一个”匹配项,直到找到要查找的条目:

    还有一个--info=progress2选项可基于整个传输而不是单个文件输出统计信息。如果要在不滚动具有很多名称的屏幕的情况下查看传输的情况,请使用此标志而不输出文件名(例如,避免 -v或指定--info=name0)。(您无需指定--progress选项即可使用--info=progress2。)

另请参阅:加布里埃尔·斯台普斯(Gabriel Staples)撰写的“如何使用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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.