คุณต้องการ tail --follow=name /var/log/syslog
เหตุผลก็คือโดยค่าเริ่มต้น - ควรเป็นเพราะเหตุผลด้านประสิทธิภาพ - tail
เปิดไฟล์ที่ระบุและจากนั้นตรวจสอบ อธิบายไฟล์ มันได้รับ
จากนั้น open(2)
เรียกร้องให้มีการเปลี่ยนแปลง
ใช้งานได้ดีตราบใดที่ไฟล์มีการเปลี่ยนแปลง - ต่อท้ายหรือเขียนใหม่ (โดยตัดทอนก่อน) แต่จะหยุดทำงานหากไฟล์นั้น แทนที่ - นั่นคือถูกลบออกและสร้างด้วยชื่อเดียวกันและนั่นคือสิ่งที่ logrotate
มักจะทำ
โหมด "ชื่อ" ของ --follow
ยี่ห้อ tail
ใช้ราคาแพงกว่า stat(2)
syscall ซึ่งอันที่จริง "แก้ไข" ชื่อไฟล์ทุกครั้งผ่านชั้นระบบแฟ้มและถ้า tail
สังเกตเห็นไฟล์ที่เปลี่ยนแปลงเรียกว่า "ไอโหนด" , tail
เปิดไฟล์อีกครั้ง
ผลลัพธ์จาก man tail
:
-f, --follow[={name|descriptor}]
เอาท์พุทผนวกข้อมูลเมื่อไฟล์เติบโต;
อาร์กิวเมนต์ตัวเลือกที่ขาดหมายถึง 'descriptor'
คุณอาจจะดู -F
ตัวเลือกบรรทัดคำสั่งซึ่งกำหนดเป็น
-F
เหมือนกับ --follow=name --retry