Bagaimana cara melakukan `tail -f` dari file yang diputar log?

106

Pada sistem yang berjalan lama saya biasanya memiliki terminal

$ tail -f /var/log/kern.log

atau sesuatu seperti ini terbuka.

Tetapi dari waktu ke waktu saya harus memulai kembali perintah seperti itu karena tidak ada pesan baru yang ditampilkan lagi.

Saya berasumsi ini karena pekerjaan rotating log yang telah menggantikan file log tail -f'menonton'.

Bagaimana saya bisa menghindari masalah restart ini?

Bisakah saya meminta tailsedemikian rupa sehingga memperhatikan proses rotasi dan melakukan hal yang benar?

(Saya melihat masalah ini pada sistem Ubuntu 11.04 yang digunakan rsyslogdsecara default.)

maxschlepzig
sumber

Jawaban:

162

Gunakan -Fopsi sebagai gantinya:

tail -F /var/log/kern.log

The -Fpilihan memberitahu tailuntuk melacak perubahan pada file dengan nama file, daripada menggunakan nomor inode yang berubah selama rotasi. Ini juga akan terus mencoba membuka file jika tidak ada.

andcoz
sumber
7
Luar biasa, ya, saya. (hanya sebagai catatan, ini adalah opsi ekor GNU - di mana ekor GNU tentu saja merupakan bawaan pada Ubuntu).
maxschlepzig
Anda benar: - / Saya tidak memperhatikan bahwa Ubuntu dalam pertanyaan Anda hanyalah contoh.
andcoz
bukan masalah sama sekali - saya hanya berkomentar untuk kelengkapan (kadang-kadang saya hanya ingin melihat apa yang POSIX dan apa yang tidak). Pertanyaannya memang cukup banyak tentang Ubuntu.
maxschlepzig
1
Apakah tail -F /var/log/kern.logsetara dengan tail -f --follow=name --retry /var/log/kern.log?
Basj
1
@ Basj - menurut man7.org/linux/man-pages/man1/tail.1.html itu setara
andrej