Saya perhatikan baru-baru ini bahwa kadang-kadang tail -f <logfile>
akan berhenti memperbarui ke layar.
Namun, melakukan Ctrl>- Cdan memulai kembali tail
berfungsi dengan baik. Dan saya memeriksa untuk memastikan file log tidak diputar tengah (yang dapat membuat tail
kehilangan akal sehat).
Apa yang menyebabkan ini? Saya menjalankan RHEL 5.2 x64.
Jawaban:
Coba lilitkan perintah ekor
strace
Anda jika Anda memilikinya:Kemudian hanya untuk tendangan rekursif gila, Anda dapat mengekstraksi output strace (tidak masalah jika itu rusak karena akan keluar ke file):
Tambang saya terlihat seperti:
-T Mengaktifkan waktu dan -T mengaktifkan waktu yang dihabiskan dalam panggilan.
Tekan balik 4 atau 5 kali untuk membuat sedikit ruang vertikal, lalu tunggu sampai tailing berhenti. Semoga akan ada beberapa petunjuk dalam output.
sumber
Coba gunakan:
tail --follow=name <logfile>
Dan lihat apakah itu bekerja lebih baik. Anda tidak perlu khawatir itu diputar keluar dari bawah Anda.
Apa ada pola untuk menghentikannya? Lamanya waktu tertentu? Waktu tertentu?
sumber
tail
- hanya saja secara berkala (sekitar 2 sampai 20 jam) berhenti untuk mengikuti lagi .. berharap ada lebih dari pola: - \screen
sesi untuk debugging yang diperpanjang, dan ini mengkhawatirkanMengingat bahwa kedua file log bermasalah ditulis oleh komponen yang berbeda dari aplikasi yang sama, saya bertanya-tanya apakah itu bukan bagian dari kode logging untuk aplikasi yang menyebabkan masalah. Saya mengusulkan dua tes untuk mendapatkan ide yang lebih baik tentang apa yang terjadi:
Catat inode dari file log (
ls -i logfile
) sebelum memulai tail, dan begitu tail gagal, periksa lagi. Jika inode telah berubah, maka logger sedang menulis ulang seluruh file log, yang akan memutuskan koneksi tail.Catat baris terakhir sebelum tail berhenti bekerja, dan kemudian kunjungi file dan temukan entri log pertama setelah baris itu. Lakukan ini 3-5 kali jika memungkinkan. Jika ada masalah dengan program yang melakukan logging, bagian dari program yang menulis entri log segera setelah Anda melihat istirahat kemungkinan besar bertanggung jawab. Jika entri log itu selalu sama, atau jika itu berasal dari komponen program yang sama, Anda mungkin memiliki cukup data untuk mengirimkan laporan masalah ke vendor aplikasi.
Semoga berhasil.
sumber
Memiliki masalah yang sama di sini.
Masalahnya adalah, bahwa file yang saya tonton dipasang dari mesin yang berbeda. Pemberitahuan perubahan tidak disebarkan melalui mount.
Solusi adalah dengan menggunakan ekor pada mesin asli.
sumber