pvเป็นคำสั่งของคุณ! P ipe V iewer พิมพ์สถิติเกี่ยวกับข้อมูลที่ผ่านมาและสามารถทำงานได้ทุกที่ในไปป์ไลน์ของคุณเนื่องจากจะส่งข้อมูลไปยัง stdout โดยตรง ตัวอย่างเช่น:
tail -f /var/log/nginx/access.log | pv --line-mode --rate > /dev/null
pvพิมพ์คำสั่งเพื่อ stderr หมายเลขปัจจุบันของสายต่อวินาที (ค่าเริ่มต้นคือไบต์ต่อวินาที) ซึ่งสำหรับแหล่งข้อมูลนี้โดยเฉพาะ (ล็อกไฟล์เริ่มต้นของ Nginx) เท่ากับหน้าเว็บที่เข้ามาต่อวินาที ฉันจะดูแลเกี่ยวกับการนับจำนวนเพื่อให้ท่อ stdout /dev/nullฉันเข้าไป นอกจากนี้ยังมีตัวเลือกเช่น:
-b (จำนวนบรรทัดทั้งหมด)
--average-rate (อัตราเฉลี่ยตั้งแต่เริ่มต้น) และ
--timer (ติดตามความยาวของท่อที่เกิดขึ้น)
หากคุณไม่บอกว่า--line-modeจะนับจำนวนไบต์ซึ่งอาจไม่ใช่สิ่งที่คุณต้องการสำหรับบันทึกเซิร์ฟเวอร์ แต่อาจมีประโยชน์ในที่อื่น
Final note: ... | pv -lb > file.txtมีลักษณะคล้ายกันมาก... | tee file.txt | awk '{printf "\r%lu", NR}'ซึ่งมีประโยชน์สำหรับการนับจำนวนบรรทัด แต่การpvโทรสั้นลงอย่างมากแม้ว่าเอาต์พุตจะไม่น่าตื่นเต้นเท่าไหร่ - pvอัปเดตทุกวินาทีตามค่าเริ่มต้นในขณะที่awkคำสั่งนั้นจะอัปเดตอย่างต่อเนื่อง