Saturday, February 1, 2025

Giới thiệu lệnh pv trong Linux

-

1. Giới thiệu về lệnh pv

Lệnh pv (Pipe Viewer) là một công cụ dòng lệnh trong Linux giúp theo dõi dữ liệu khi truyền qua pipe. Nó cung cấp hiển thị trực quan về tiến trình, giúp người dùng dễ dàng theo dõi trạng thái của các tác vụ truyền dữ liệu kéo dài.

Lệnh pv đặc biệt hữu ích khi giám sát dữ liệu được gửi qua pipeline, cung cấp thông tin thời gian thực về tốc độ truyền dữ liệu, thời gian đã trôi qua, tổng lượng dữ liệu đã truyền, và thời gian dự kiến hoàn thành.


2. Các tính năng chính của lệnh pv

Lệnh pv cung cấp các thông tin sau trong quá trình truyền dữ liệu:

Thời gian đã trôi qua – Hiển thị tổng thời gian kể từ khi quá trình bắt đầu.
Tiến độ hoàn thành – Hiển thị thanh tiến trình theo phần trăm.
Tốc độ truyền dữ liệu – Hiển thị tốc độ dữ liệu đang được truyền (throughput).
Tổng dữ liệu đã truyền – Hiển thị số lượng dữ liệu đã được truyền đi.
Thời gian dự kiến hoàn thành (ETA) – Tính toán thời gian còn lại dựa trên tốc độ truyền dữ liệu hiện tại.


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

Lệnh pv có sẵn trong hầu hết các bản phân phối Linux và có thể cài đặt bằng trình quản lý gói của hệ thống.

🔹 Trên Debian/Ubuntu:

sudo apt-get install pv

🔹 Trên RedHat/CentOS:

sudo yum install pv

4. Cách sử dụng lệnh pv

Lệnh pv thường được dùng để theo dõi quá trình truyền dữ liệu giữa hai tiến trình thông qua pipe (|).

📌 Cú pháp chung:

pv fileName
pv OPTIONS fileName
pv fileName > outputFileName
pv OPTIONS | command > outputFileName
command1 | pv | command2

Lệnh pv nhận dữ liệu từ stdin (dữ liệu đầu vào tiêu chuẩn) và chuyển nó sang stdout (dữ liệu đầu ra tiêu chuẩn), đồng thời hiển thị tiến trình lên stderr (lỗi tiêu chuẩn).


5. Các tùy chọn chính của lệnh pv

5.1. Tùy chọn hiển thị tiến trình

  • -p, --progress → Hiển thị thanh tiến trình.
  • -t, --timer → Hiển thị thời gian đã trôi qua.
  • -e, --eta → Hiển thị thời gian dự kiến hoàn thành.
  • -r, --rate → Hiển thị tốc độ truyền dữ liệu hiện tại.
  • -b, --bytes → Hiển thị tổng dữ liệu đã truyền.
  • -n, --numeric → Hiển thị phần trăm dưới dạng số nguyên thay vì thanh tiến trình.
  • -q, --quiet → Ẩn tất cả thông tin hiển thị.

5. 2. Tùy chọn điều chỉnh đầu ra

  • -W, --wait → Đợi đến khi dữ liệu đầu tiên được truyền mới hiển thị tiến trình.
  • -i SECONDS, --interval SECONDS → Cập nhật tiến trình sau mỗi SECONDS giây.
  • -F, --force → Hiển thị thông tin tiến trình ngay cả khi stderr không phải là terminal.
  • -s SIZE, --size SIZE → Giả định tổng dữ liệu cần truyền là SIZE byte (để tính phần trăm và ETA).
  • -L, --line-mode → Thanh tiến trình sẽ cập nhật theo số dòng thay vì kích thước dữ liệu.

5.3. Tùy chọn giới hạn tốc độ dữ liệu

  • -L RATE, --rate-limit RATE → Giới hạn tốc độ truyền dữ liệu ở mức tối đa RATE byte/giây.
  • -B BYTES, --buffer-size BYTES → Thiết lập kích thước bộ đệm.

6. Ví dụ sử dụng lệnh pv trong Linux

6.1. Hiển thị tiến trình khi sao chép file

Chúng ta có thể sử dụng pv để theo dõi quá trình sao chép file:

pv history.log > $HOME/Documents/history.log

📌 Giải thích: Hiển thị tiến trình khi sao chép file history.log vào thư mục Documents.

6.2. Hiển thị tiến trình khi tạo file nén ZIP

Nếu muốn nén một file và theo dõi tiến trình, sử dụng:

pv history.log | zip > $HOME/Documents/history.zip

📌 Giải thích: Nén file history.log và theo dõi tiến trình nén.

6.3. Đếm số dòng, từ, byte trong file

Dùng pv kết hợp với wc để đếm số dòng, số từ và số byte:

pv -p history.log | wc

📌 Giải thích: pv hiển thị tiến trình trong khi wc đếm số dòng, từ và byte.

6.4. Theo dõi tiến trình nén thư mục bằng tar

Khi nén thư mục bằng tar, ta có thể dùng pv để hiển thị tiến trình:

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

📌 Giải thích:

  • tar -czf - ./Documents/ → Nén thư mục Documents.
  • pv -p --timer --rate --bytes > backup.tgz → Theo dõi tiến trình và lưu vào file backup.tgz.

7. Kết luận

Lệnh pv là một công cụ hữu ích để theo dõi quá trình truyền dữ liệu trong Linux. Nó cung cấp thông tin trực quan theo thời gian thực về tốc độ, tiến trình và thời gian dự kiến hoàn thành.

Việc sử dụng pv giúp quản trị viên hệ thống dễ dàng giám sátquản lý các tác vụ xử lý dữ liệu lớn mà không cần phải chờ đợi trong vô định. Nếu bạn thường xuyên làm việc với pipe và luồng dữ liệu, pv chắc chắn là một công cụ không thể thiếu! 🚀

Tham khảo 🔗 https://www.geeksforgeeks.org/pv-command-in-linux-with-examples/

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories