เหตุใดโหมดหางน้อยลงจึงหยุดทำงาน


11

การใช้lessคำสั่งบน linux ในโหมด tail (คำสั่ง F หรือน้อยกว่า -f) หยุดทำงานอย่างต่อเนื่องในเครื่องและ / หรือไฟล์บางไฟล์ การเปลี่ยนแปลงใหม่ก็หยุดแสดง

ฉันรู้ว่าฉันแก้ไขปัญหานี้มาก่อนนานแล้ว แต่ฉันจำไม่ได้ว่าวิธีแก้ปัญหาคืออะไร

ความคิดใด ๆ


คุณลองใช้สเตรซเพื่อดูว่ามันทำอะไรอยู่ (ไม่ใช่)? บางทีคุณอาจเห็นข้อผิดพลาด
wfaulk

FYI สิ่งนี้ยังคงไม่ได้รับคำตอบเนื่องจากไฟล์ที่เป็นปัญหาไม่ได้ถูกรีด / หมุน / สร้างใหม่
TREE

คำตอบ:


12

ลองใช้less --follow-nameดู แม้ว่าไฟล์จะมีชื่อเหมือนกัน แต่การอัพเดตกระบวนการอาจทำในลักษณะที่เปลี่ยนแปลง inode ของไฟล์ - ดังนั้นจากมุมมองของ OS มันเป็นไฟล์ใหม่หลังจากการอัพเดต


+1 คำตอบที่สมบูรณ์แบบนั่นเป็นเหตุผลว่าทำไมจึงมีการแนะนำตัวเลือกนี้ โปรดทราบว่า--follow-nameเปิดตัวใน v415 น้อยกว่า ( greenwoodsoftware.com/less/news.415.html ) เปิดตัวเมื่อ 15 พฤศจิกายน 2550 ดังนั้นการติดตั้ง Linux แบบเก่าอาจไม่มี
sleske

3

คุณดูไฟล์บันทึกที่หมุนโดย logrotate หรือไม่ หากไฟล์ที่กำลังดูน้อยกว่านั้นถูกเปลี่ยนชื่อ (เช่นจาก log เป็น log.0 โดย logrotate) ไฟล์จะยังคงดูน้อยกว่าแม้ว่าจะมีการเขียนรายการใหม่ไปยังไฟล์อื่น (ด้วยชื่อเดิม)


หากเป็นกรณีนี้ให้ลอง tail --follow = name [filename] (ซึ่งทำให้ tail เปิดไฟล์เป็นระยะในกรณีที่มีการเปลี่ยนชื่อ) ดูgnu.org/software/coreutils/manual/html_node/…
Randy Orrison

ไม่บันทึกไม่หมุน มันเป็นไฟล์เดียวกัน
TREE

1

บางทีคุณอาจลองtail -f [filename]แทน


4
เมื่อมีน้อยคุณสามารถ "หยุดท้ายของคุณ" (โดยใช้ Ctrl-c) เพื่อไปยังบรรทัดที่ระบุและกลับมาทำงานต่อในภายหลัง (โดยใช้ F) นั่นเป็นเหตุผลที่ในบางกรณีเป็นที่ต้องการมากกว่า "tail -f"
dogbane

tail -f ทำงานได้ แต่ฉันต้องการทำงานน้อยกว่า
TREE

ฉันเห็น. ไม่ทราบว่า
brandstaetter

0

less +F --follow-nameที่ฉันทำ --follow-nameเพียงแค่ตรวจสอบไฟล์ที่มีชื่อเดียวกันโดยไม่ได้รับการเปลี่ยนแปลงที่เข้ามาในกรณีของฉัน (CentOS 7)

ที่จริงฉันสร้างนามแฝงสำหรับสิ่งนี้:

เพิ่มบรรทัดนี้ใน/etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

บันทึกและแหล่งที่มาเพื่อใช้ทันที . /etc/profile.d/alias.sh

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