3 ví dụ lệnh pv trên Centos / Ubuntu / Debian / Fedora

Pv là một công cụ dòng lệnh cho phép bạn theo dõi tiến trình của dữ liệu đang được truyền qua một ống (pipe). Khi sử dụng lệnh pv, nó cung cấp cho bạn một hiển thị trực quan với các thông tin sau:

  • Thời gian đã trôi qua.
  • Phần trăm đã hoàn thành bao gồm một thanh tiến trình.
  • Hiển thị tốc độ truyền dữ liệu hiện tại.
  • Tổng số dữ liệu đã truyền.
  • Và thời gian ước tính còn lại (ETA - Estimated Time).

Cài đặt lệnh pv trên Linux

Lệnh pv không được cài đặt theo mặc định trên hầu hết các bản phân phối Linux, do đó bạn cài đặt nó bằng cách làm theo các bước dưới đây.

Cài đặt lệnh pv trên RHEL-based Linux. 

Đầu tiên, bạn cần bật kho lưu trữ EPEL và sau đó chạy lệnh yum hoặc dnf sau để cài đặt nó.

# yum install pv

OR

# dnf install pv   

Cài đặt pv trên Debian-based Linux

$ sudo apt-get install pv

Cài đặt pv trên các bản phân phối Linux khác

$ sudo emerge -a pv        [On Gentoo Linux]
$ sudo apk add pv          [On Alpine Linux]
$ sudo pacman -S pv        [On Arch Linux]
$ sudo zypper install pv   [On OpenSUSE]   

Sử dụng lệnh pv trên Linux

pv thường được sử dụng với các chương trình khác mà thiếu khả năng theo dõi tiến trình của một hoạt động đang diễn ra. Bạn có thể sử dụng nó bằng cách đặt nó trong một pipeline giữa hai quy trình, với các tùy chọn phù hợp.

Đầu vào tiêu chuẩn của pv sẽ được chuyển qua đầu ra tiêu chuẩn và tiến trình (đầu ra) sẽ được in trên tiêu chuẩn lỗi. Nó có hành vi tương tự như lệnh cat trên Linux.

Cú pháp của lệnh pv như sau: 

$ pv file
$ pv options file
$ pv file > filename.out
$ pv options | command > filename.out
$ comand1 | pv | command2 

Các tùy chọn được sử dụng với pv được chia thành ba danh mục, các công tắc hiển thị, các bộ điều chỉnh đầu ra và các tùy chọn chung.

Các tùy chọn hiển thị của Pv

Một số tùy chọn nằm trong các bộ điều chỉnh hiển thị.

  • Bật thanh tiến trình: tùy chọn -p.
  • Xem thời gian đã trôi qua: tùy chọn --timer.
  • Bật bộ đếm ETA (thời gian ước tính còn lại) mà cố gắng đoán thời gian còn lại trước khi hoàn thành một hoạt động: tùy chọn --eta. Đoán đề xuất dựa trên tốc độ truyền trước đó và tổng kích thước dữ liệu.
  • Bật bộ đếm tốc độ: tùy chọn --rate.
  • Hiển thị tổng số dữ liệu đã truyền cho đến thời điểm hiện tại: tùy chọn --bytes.
  • Hiển thị thông tin tiến trình dưới dạng phần trăm số nguyên thay vì biểu thị trực quan: tùy chọn -n. Điều này hữu ích khi sử dụng pv với lệnh dialog để hiển thị tiến trình trong một hộp dialog.

Các tùy chọn bộ điều chỉnh đầu ra của Pv

  • Một số tùy chọn nằm trong các bộ điều chỉnh đầu ra.
  • Chờ đến khi byte đầu tiên được truyền trước khi hiển thị thông tin tiến trình: tùy chọn --wait.
  • Giả định tổng số dữ liệu cần truyền là SIZE byte khi tính phần trăm và ETA: tùy chọn --size SIZE.
  • Chỉ định số giây giữa các cập nhật: tùy chọn --interval SECONDS.
  • Sử dụng tùy chọn --force để bắt buộc thực hiện một hoạt động. Tùy chọn này buộc pv hiển thị trực quan khi tiêu chuẩn lỗi không phải là một thiết bị đầu cuối.
  • Các tùy chọn chung là --help để hiển thị thông tin sử dụng và --version để hiển thị thông tin phiên bản.

Các ví dụ về lệnh pv trên Linux

3.1. Khi không bao gồm bất kỳ tùy chọn nào, lệnh pv chạy với các tùy chọn mặc định -p, -t, -e, -r và -b.

Ví dụ, để sao chép tệp opensuse.vdi vào /tmp/opensuse.vdi, chạy lệnh sau và xem thanh tiến trình trên màn hình. 

# pv opensuse.vdi > /tmp/opensuse.vdi

3.2. Để tạo một tệp zip từ tệp /var/log/syslog, chạy lệnh sau.

# pv /var/log/syslog | zip > syslog.zip

3.3. Để đếm số dòng, số từ và số byte trong tệp /etc/hosts trong khi chỉ hiển thị thanh tiến trình, chạy lệnh sau. 

# pv -p /etc/hosts | wc

3.4. Theo dõi tiến trình tạo tệp sao lưu bằng cách sử dụng tiện ích tar. 

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

Trong ví dụ này,sử dụng lệnh dd để ghi tệp ISO vào ổ flash USB:

# dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M

3.6. Sử dụng lệnh pv và công cụ dòng lệnh dialog để tạo một thanh tiến trình trong hộp dialog như sau.

# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

Mọi người cũng tìm kiếm: debian fedora, ubuntu pv, yum vs dnf, ubuntu install pv, centos install pv