ค้นหาเว็บไซต์

วิธีบันทึกเอาต์พุตคำสั่งยอดนิยมลงในไฟล์


ผู้ดูแลระบบใช้คำสั่ง Linux top เพื่อแสดงสถิติระบบแบบเรียลไทม์เกี่ยวกับ เวลาทำงานของระบบ และ ค่าเฉลี่ยการโหลด, หน่วยความจำที่ใช้, งานที่กำลังรันอยู่ สรุปกระบวนการหรือเธรด และข้อมูลโดยละเอียดเกี่ยวกับแต่ละกระบวนการที่ทำงานอยู่

อย่างไรก็ตาม นอกเหนือจากการดูระบบที่ทำงานอยู่แบบเรียลไทม์แล้ว เอาต์พุตคำสั่ง top ยังสามารถบันทึกลงในไฟล์ได้โดยใช้แฟล็ก -b ซึ่งสั่งให้ top ทำงานในโหมดแบตช์และ -n เพื่อระบุจำนวนการวนซ้ำที่คำสั่งควรส่งออก

ในตัวอย่างด้านล่าง เราจะเปลี่ยนเส้นทางเอาต์พุตของ top command ไปยังไฟล์ top.txt ในไดเร็กทอรีการทำงานปัจจุบัน อาร์กิวเมนต์ -n จะถูกใช้เพื่อส่งสแน็ปช็อตเดียวของคำสั่งไปยังไฟล์ดังกล่าว

top -b -n 1 > top.txt

หากต้องการอ่านไฟล์ผลลัพธ์ ให้ใช้ยูทิลิตีโปรแกรมอ่านไฟล์บรรทัดคำสั่ง เช่น คำสั่ง cat น้อยกว่าหรือมากกว่า

less top.txt

หากต้องการทำซ้ำห้าครั้งของ คำสั่งด้านบน ให้ดำเนินการคำสั่งตามที่แสดงในข้อความที่ตัดตอนมาด้านล่าง

top -b -n 5 > top-5iterations.txt

เพื่อแสดงเฉพาะจำนวนงานที่รันอยู่จากไฟล์ผลลัพธ์ ให้ใช้ตัวกรอง grep ดังแสดงในตัวอย่างคำสั่งด้านล่าง

cat top-5iterations.txt | grep Tasks

หากต้องการถ่ายภาพกระบวนการเฉพาะใน ยูทิลิตี้ระดับบนสุด ให้ดำเนินการคำสั่งด้วยแฟล็ก PID (-p) หากต้องการรับ PID ของกระบวนการที่กำลังทำงานอยู่ ให้ออก คำสั่ง pidof กับชื่อของกระบวนการที่กำลังทำงานอยู่

ในตัวอย่างนี้ เราจะตรวจสอบกระบวนการ cron ผ่านทาง คำสั่งด้านบน โดยการถ่ายภาพ PID สามภาพ

pidof crond
top -p 678 -b -n3 > cron.txt
cat cron.txt

การใช้ลูปวนซ้ำ for ทำให้เราสามารถแสดงสถิติกระบวนการผ่าน PID ของมันทุกๆ สองวินาที ดังที่แสดงในตัวอย่างด้านล่าง เอาต์พุตของการวนซ้ำสามารถเปลี่ยนเส้นทางไปยังไฟล์ได้ เราจะใช้ cron PID เดียวกันกับที่แสดงในตัวอย่างด้านบน

for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done	

เปลี่ยนเส้นทางเอาต์พุตลูปไปยังไฟล์

for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
cat cron.txt

นี่เป็นเพียงตัวอย่างเล็กๆ น้อยๆ เกี่ยวกับวิธีที่คุณสามารถตรวจสอบและรวบรวมระบบและประมวลผลสถิติผ่าน คำสั่งบนสุด