แสดงไฟล์บันทึก“ การเลื่อน”


28

ผ่านบรรทัดคำสั่งฉันมีไฟล์บันทึกที่ฉันต้องการติดตาม

สิ่งที่ฉันต้องการคือโดยทั่วไปแล้วจะเป็นการtailรีเฟรชเมื่อมีการอัปเดตบันทึกทำให้ข้อความเลื่อนขึ้นด้านบนเนื่องจากบรรทัดใหม่ถูกผนวกเข้ากับไฟล์บันทึก

มีอะไรออกมาบ้างที่ทำได้โดยไม่ต้องเขียนโค้ด?

คำตอบ:


35

tailมี-fตัวเลือก:

จากmanหน้า:

-f, --follow [= {name | descriptor}] เอาต์พุตต่อท้ายข้อมูลเมื่อไฟล์เติบโตขึ้น -f, --follow และ --follow = descriptor เทียบเท่ากัน

ดังนั้นหากคุณพิมพ์:

tail -f [path_and_name_of_logfile] - คุณจะเห็นผลลัพธ์ในเทอร์มินัลเมื่อไฟล์บันทึกนั้นถูกผนวกเข้ากับ

NB [path_and_name_of_logfile]เป็นพารามิเตอร์ดังนั้นเพื่อให้ตัวอย่าง:

tail -f /var/log/messages

หากคุณรวมกับ-n [number_of_lines]ตัวเลือกคุณสามารถเริ่มต้นผลลัพธ์จาก [number_of_lines] สุดท้ายในไฟล์ - ตัวอย่างเช่น

tail -n 10 -f /var/log/Xorg.0.log

ป้อนคำอธิบายรูปภาพที่นี่


บางโปรแกรมจะเปลี่ยนไฟล์บันทึกเป็นระยะย้ายไฟล์เก่าเป็นชื่อใหม่ (เช่น log.0) และเริ่มใหม่

NB logrotate ใช้เพื่อบันทึกไฟล์สำหรับโปรแกรมอื่นที่ไม่ได้ทำเอง

tail -f จะยังคงติดตามไฟล์เก่าหลังจากเปลี่ยนชื่อ

tail -F จะติดตามไฟล์ตามชื่อดังนั้นจะเปลี่ยนไปตามไฟล์ใหม่


คำตอบทั้งคู่เป็นจุดบน ... ไม่ทราบว่าหางมีตัวเลือกนั้น คุณได้รับเช็คสำหรับข้อมูลเพิ่มเติม
WernerCD

นอกจากนี้ยังมีสคริปต์ที่น่ากลัวสองสามตัวที่นั่นเพื่อทำสีบันทึกของคุณให้มีสีสัน ตัวอย่างหนึ่งที่นึกถึงคือ colorize.pl และคุณทำสิ่งนี้ได้โดยการไพพ์ผ่านสคริปต์ colorize เช่น: tail -f / var / log / messages | /home/me/colorize.pl
lazyPower

@lazyPower Nice เช่นกัน ฉันจะต้องจัดการกับสิ่งนั้นแม้ว่าฉันจะไม่คิดว่ามันจะมีประโยชน์มากในสถานการณ์ปัจจุบันของฉัน
WernerCD

18

ในขณะที่ tailจะเป็นวิธีปกติในการทำสิ่งนี้ แต่ก็ควรสังเกตว่าlessมีคุณสมบัติเดียวกันและบางครั้งก็มีประโยชน์มากกว่า

หากคุณเปิดไฟล์ด้วยlessคุณสามารถกดShift+ Fเพื่อให้มันติดตามไฟล์ (เช่นมันจะแสดงบรรทัดใหม่เช่นเดียวกับที่tail -fทำ) คุณสามารถออกจากโหมดนี้ด้วยCtrl +C

นอกจากนี้คุณยังสามารถเริ่มต้นlessด้วย+Fตัวเลือกซึ่งในกรณีนี้มันจะเริ่มในโหมดนั้น โดยทั่วไปการพูด+สามารถใช้เพื่อให้ "คำสั่งแป้นพิมพ์" lessซึ่งจะดำเนินการเมื่อเริ่มต้น

การใช้lessสิ่งนี้มีข้อดีที่คุณสามารถค้นหาไฟล์หรือดูพื้นที่อื่น ๆ ได้หากต้องการ ฉันทำแบบนั้นกับไฟล์บันทึกบ่อยๆ


ไม่เคยได้ยินเกี่ยวกับ "ติดตาม" (มากกว่า, น้อย, หาง, แมว) สิ่งที่ดีที่จะรู้
WernerCD

1
ตกลง ฉันชอบน้อยกว่ามาก Ctrl-C จะหยุดการเลื่อนเมื่อคุณเห็นสิ่งที่น่าสนใจจากนั้น b เพื่อเลื่อนไปข้างหลังหรือ f ไปข้างหน้าและ / หรือ? เพื่อค้นหาไปข้างหน้าหรือย้อนกลับ g จะนำคุณไปยังจุดเริ่มต้นของไฟล์และ G ไปยังจุดสิ้นสุด ทุกอย่างที่คุณต้องการ.
Martin Dow


4

tail มีการนำไปใช้งานสองแบบเพื่อติดตามและส่งออกข้อมูลที่ผนวกเข้ากับไฟล์

  • ทำตามไฟล์ descriptor
  • ติดตามไฟล์ด้วยชื่อที่แน่นอน

ด้วยพารามิเตอร์-f, --followและ--follow=descriptor,tailต่อไปนี้อธิบายไฟล์ เมธอดนี้อนุญาตให้ไฟล์ถูกติดตามข้ามการเปลี่ยนชื่อ แต่การติดตามจะหยุดลงเมื่อไฟล์ถูกหมุน

เมื่อทำตามไฟล์ที่มีการหมุนทั้งการใช้งาน--follow=nameหรือพารามิเตอร์ซึ่งเท่ากับ-F --follow=name --retryด้วยวิธีtailนี้จะเปิดไฟล์เป็นระยะเพื่อเอาชนะการหมุนที่เป็นไปได้


1

ฉันคิดว่าcczeเป็นเครื่องมือที่เหมาะสมสำหรับคุณ

มันทำสีเดียวกัน คุณสามารถดูบันทึกการเลื่อนลง แต่จะง่ายต่อการอ่านเพราะบรรทัดถูกพิมพ์ด้วยสี (ข้อผิดพลาดในสีแดงและอื่น ๆ ) คุณสามารถลองใช้งานด้วยสิ่งนี้:

tail -f /var/log/syslog | ccze
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.