Saya memiliki perangkat lunak yang memutar file log ketika restart. Namun, selama pengembangan, saya banyak me-restart, jadi saya ingin memonitor file log terbaru kapan saja.
Jika saya mulai secara less
normal dengan less program.log
dan menekan Shift+ funtuk mengekor, ketika file log diputar, saya terus memantau file log yang lama. Saya berasumsi ini karena nomor inode tetap sama dan less
memiliki pegangan file terbuka untuk inode itu.
Apakah mungkin untuk memantau aktivitas terbaru pada file log apa pun yang saat ini dipanggil program.log
?
Secara khusus, saya sedang mengerjakan Sun OS, jadi solusi yang berfungsi di sana akan ideal.
tail -F program.log | less
akan bekerjatail -f program.log
Sudahkah Anda mencoba ini?Jawaban:
Gunakan
less --follow-name
jika versi Andaless
mendukungnya. Opsi itu diperkenalkan di versi 416.sumber
The
less
pilihan--follow-name
hanya bagian dari solusi;Untuk mengganti
tail -F
, diperlukan argumen lain:Opsi sendirian seperti
less --follow-name file.log
sebenarnya tidak mulai mengikuti pembaruan file. Anda harus masuk ke mode ikuti menekan ShiftF.(Keluar dari mode untuk menavigasi ControlC.)
Alih-alih mengikuti file,
--follow-name
ubah perilaku kurang.Itu membuat kunci perintah ShiftFdi dalam
less
tindak berdasarkan pada nama file, bukan deskriptor file.Juga, tidak ada opsi normal untuk memulai
less
dalam mode ikuti.Tetapi Anda dapat menggunakan baris perintah untuk memberikan penekanan tombol untuk dieksekusi setelah startup, dengan mengawali dengan
+
.Menggabungkan opsi pengubah dengan
+F
,less
sebenarnya akan mulai dalam mode ikuti (dimodifikasi).Gunakan
+F
sendiri untuk setara dengan polostail -f
:sumber
Saya baru saja menemukan jawabannya di T&J T&J yang berjudul: Bagaimana cara melakukan
tail -f
file yang diputar log? .Menggunakan
tail
:(jika menginstal GNU tail pada sistem Anda adalah suatu pilihan)
Dari halaman manual tail :
Kuncinya adalah
--retry
sakelar. Ini memberi tahutail
perintah untuk terus mencoba mengikuti file dengan nama. The-F
saklar tidak baik-f
dan--retry
.Menggunakan
less
Seperti @StephaneChazela tunjukkan dalam komentar berikut ini tidak akan berfungsi.
Satu-satunya pilihan lain yang Anda miliki adalah menggunakan lebih sedikit secara langsung dengan asumsi itu mendukung
--follow-name
sakelar danless
file secara langsung, tidak menggunakantail
sepenuhnya.sumber
less
akan hang jika Anda melakukan "G" pr "F". Yang Anda dapat menyela dengan melakukan "Ctrl-C", tetapi kemudian membunuh ekornya. Anda kemudian dapat kebal ekor ke Ctrl-C, tapi itu masih belum bisa digunakan.