Bagaimana cara memonitor hanya n baris terakhir dari file log?


110

Saya memiliki file log yang sedang tumbuh yang ingin saya tampilkan hanya 15 baris terakhir. Inilah yang saya tahu bisa saya lakukan:

tail -n 15 -F mylogfile.txt

Ketika file log diisi, tailtambahkan baris terakhir ke tampilan.

Saya mencari solusi yang hanya menampilkan 15 baris terakhir dan menyingkirkan baris sebelum 15 terakhir setelah diperbarui. Apakah Anda punya ide?


28
Ubah ukuran jendela terminal Anda menjadi 15 baris.
Jonathan

1
Itu bagus juga.
Marc-Olivier Titeux

3
@Jonathan genius!
Marsellus Wallace

Tidak dapat meningkatkan komentar jonathan atau kehilangan rasa memiliki 15 upvotes
jdero

Jawaban:


151

Mungkin cukup menggunakan arloji:

$ watch tail -n 15 mylogfile.txt

1
Bagus! Terima kasih banyak. Saya juga belajar perintah 'menonton' dalam proses.
Marc-Olivier Titeux

1
Ketahuilah bahwa solusi ini tidak berfungsi jika file tumbuh lebih dari 15 baris di antara dua watchpembaruan. Anda dapat menggunakan -nuntuk mengubah interval ini.
bfontaine

25

Jika Anda menggunakan arloji, cobalah -nopsi untuk mengontrol interval antara setiap pembaruan.

Dengan demikian, yang berikut akan memanggil ekor setiap 2 detik

$ watch -n 2 tail -n 15 mylogfile.txt

sementara ini polling setiap 1 detik

$ watch -n 1 tail -n 15 mylogfile.txt

13

Anda dapat mengalirkan file log yang berjalan kurang dan menekan SHIFT + F yang akan mengalirkan file menggunakan lebih sedikit. $ less mylogfile.txt Kemudian cukup tekan SHIFT + F dan itu akan mengalir. Saya pikir akan lebih mudah untuk memonitor file log yang diperbarui.


1
Itu sangat bagus!
kaiser

8

Mungkin Anda menemukan -dparam berguna.

man watch

-d Sorot perbedaan antara pembaruan berturut-turut. Opsi akan membaca argumen opsional yang mengubah sorotan menjadi permanen, memungkinkan untuk melihat apa yang telah berubah setidaknya sekali sejak iterasi pertama.


1
Tangkapan yang bagus juga!
Marc-Olivier Titeux

0

Di Solaris, AIX atau HPUX atau seperti UNIX (termasuk Linux) Anda dapat menggunakan skrip untuk memantau log atau hal-hal seperti itu:

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.