วิธีการตรวจสอบเฉพาะ n บรรทัดสุดท้ายของไฟล์บันทึก


110

ฉันมีล็อกไฟล์ที่กำลังเติบโตซึ่งฉันต้องการแสดงเฉพาะ 15 บรรทัดสุดท้าย นี่คือสิ่งที่ฉันรู้ว่าฉันสามารถทำได้:

tail -n 15 -F mylogfile.txt

เมื่อไฟล์บันทึกถูกเติมให้tailผนวกบรรทัดสุดท้ายเข้ากับจอแสดงผล

ฉันกำลังมองหาวิธีแก้ปัญหาที่แสดงเฉพาะ 15 บรรทัดสุดท้ายและกำจัดบรรทัดก่อน 15 บรรทัดสุดท้ายหลังจากได้รับการอัพเดต คุณมีความคิดไหม?


28
ปรับขนาดหน้าต่างเทอร์มินัลเป็น 15 บรรทัด
Jonathan

1
นั่นเป็นสิ่งที่ดีเช่นกัน
Marc-Olivier Titeux

3
@ อัจฉริยะ Jonathan!
Marsellus Wallace

ไม่สามารถโหวตความคิดเห็นของโจนาธานหรือแพ้รสชาติของการมีผู้
โหวต

คำตอบ:


151

อาจพอใช้นาฬิกา:

$ watch tail -n 15 mylogfile.txt

1
ที่ดี! ขอบคุณมาก. ฉันยังเรียนรู้คำสั่ง 'เฝ้าดู' ในกระบวนการด้วย
Marc-Olivier Titeux

1
โปรดทราบว่าโซลูชันนี้ใช้ไม่ได้หากไฟล์เติบโตมากกว่า 15 บรรทัดระหว่างwatchการอัปเดตสองรายการ คุณสามารถใช้-nเพื่อเปลี่ยนช่วงเวลานี้
bfontaine

25

หากคุณใช้ watch ให้ลอง-nตัวเลือกเพื่อควบคุมช่วงเวลาระหว่างการอัพเดทแต่ละครั้ง

ดังนั้นสิ่งต่อไปนี้จะเรียกหางทุก 2 วินาที

$ watch -n 2 tail -n 15 mylogfile.txt

ในขณะที่คนนี้โพลล์มันทุก 1 วินาที

$ watch -n 1 tail -n 15 mylogfile.txt

13

คุณสามารถสตรีม logfile ให้ทำงานน้อยลงและกด SHIFT + F ที่จะสตรีมไฟล์โดยใช้น้อย $ less mylogfile.txt จากนั้นเพียงกด SHIFT + F แล้วมันจะสตรีม ฉันคิดว่ามันสะดวกสำหรับการตรวจสอบไฟล์บันทึกที่อัพเดต


1
นั่นเป็นสิ่งที่ดีมาก!
kaiser

8

บางทีคุณอาจพบว่า-dมีประโยชน์

man watch

-d เน้นความแตกต่างระหว่างการปรับปรุงอย่างต่อเนื่อง ตัวเลือกจะอ่านอาร์กิวเมนต์ที่เป็นตัวเลือกที่การเปลี่ยนแปลงจะเน้นเป็นการถาวรทำให้สามารถดูสิ่งที่เปลี่ยนแปลงไปอย่างน้อยหนึ่งครั้งตั้งแต่การทำซ้ำครั้งแรก


1
จับได้ดีเช่นกัน!
Marc-Olivier Titeux

0

ใน Solaris, AIX หรือ HPUX หรือ UNIX-like (รวมถึง Linux) คุณสามารถใช้สคริปต์เพื่อตรวจสอบบันทึกหรืออะไรทำนองนั้น:

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.