Linux Progress命令使用实例

2023-04-26 17:06:57 浏览数 (2)

Coreutils Progress Viewer(cv),以前称为cv(Coreutils Viewer):是一个简单的程序,它可以用于显示任何核心组件命令(如:cp、mv、dd、tar、gzip、gunzip、cat、grep、fgrep、egrep、cut、sort、xz、exiting)的进度。它使用文件描述信息来确定一个命令的进度,比如cp命令。cv之美在于,它能够和其它Linux命令一起使用,比如你所知道的watch以及I/O重定向命令。

实验环境

Centos7.7 Minimal

Progress工具的github地址:https://github.com/Xfennec/progress

安装

Progress工具依赖ncurses库,先安装ncurses-devel然后再编译安装progress

代码语言:javascript复制
[root@localhost ~]# yum -y install ncurses-devel
[root@localhost ~]# git clone https://github.com/Xfennec/progress
[root@localhost ~]# cd progress/
[root@localhost progress]# make && make install

运行progress

如果没有命令在运行,那么progress程序将退出并告诉你,没有命令正在运行。

代码语言:javascript复制
[root@localhost ~]# progress
No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, 7z, 7za, zcat, bzcat, lzcat, split, gpg, or wrong permissions.

使用cp命令复制一个文件,当拷贝一个大文件的时候可以看到进度

代码语言:javascript复制
[root@localhost ~]# cp -p CentOS-7-x86_64-Minimal-1908.iso /tmp/
# 再打开一个终端,输入progress查看任务进度
[root@localhost ~]# progress

如果需要知道移动或者复制大文件的剩余时间,可以添加-w选项,隐藏全部消息可以使用-q。

代码语言:javascript复制
[root@localhost ~]# cp -p CentOS-7-x86_64-Minimal-1908.iso /tmp/
# 再打开一个终端,输入progress查看任务进度
[root@localhost ~]# progress -wq

progress和watch命令一起使用

Watch配合progress命令使用,可以实时显示文件传输的进度:

代码语言:javascript复制
[root@localhost ~]# cp -p CentOS-7-x86_64-Minimal-1908.iso /tmp/
# 再打开一个终端,输入progress查看任务进度
[root@localhost ~]# watch progress -wq

总结

progress只需扫描/proc以查找感兴趣的命令,然后查看目录fd和fdinfo以查找打开的文件和查找位置,并报告最大文件的状态。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:zbxhhzj@qq.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。 转载本站文章请保留原文链接,如文章内说明不允许转载该文章,请不要转载该文章,谢谢合作。

0 人点赞