Bir günlük dosyasının sadece son n satırlarını nasıl izleyebilirim?


110

Sadece son 15 satırı görüntülemek istediğim, büyüyen bir günlük dosyasına sahibim . İşte yapabileceğimi biliyorum:

tail -n 15 -F mylogfile.txt

Günlük dosyası doldurulurken, tailekrana son satırları ekler.

Yalnızca son 15 satırı görüntüleyen ve güncellendikten sonraki 15 satırdan önce satırlardan kurtulan bir çözüm arıyorum. Bir fikrin var mı?


28
Terminal pencerenizi 15 satıra yeniden boyutlandırın.
Jonathan

1
Bu da iyi bir tane.
Marc-Olivier Titeux,

3
@Jonathan dahi!
Marsellus Wallace

Jonathan'ın yorumuna oy veremez mi, 15 oy vermedeki lezzetini kaybeder
jdero 19:16 '

Yanıtlar:


151

Saati kullanmak yeterli olabilir:

$ izle kuyruk -n 15 mylogfile.txt

1
Harika! Çok teşekkürler. Ayrıca süreçteki 'watch' komutunu da öğrendim.
Marc-Olivier Titeux

1
Dosya iki watchgüncelleme arasında 15 satırdan fazla büyürse, bu çözümün işe yaramadığını unutmayın . -nBu aralığı değiştirmek için kullanabilirsiniz .
bfontaine

25

Saat kullanıyorsanız, -nher güncelleme arasındaki aralığı kontrol etme seçeneğini deneyin .

Böylece, aşağıdaki her 2 saniyede bir kuyruk çağrısı yapacaktır.

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

bu, her 1 saniyede bir yoklama yaparken

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

13

Günlük dosyasını daha az çalıştırarak ve daha az kullanarak dosyayı yayınlayacak ÜST KRKT + F tuşlarına basarak aktarabilirsiniz. $ less mylogfile.txt Sonra sadece ÜSTKRKT + F tuşlarına basın ve akış gösterecektir. Güncelleştirilen günlük dosyalarını izlemek için uygun olduğunu düşünüyorum.


1
Bu çok hoş biri!
kaiser

8

Belki -dparam'ı kullanışlı buluyorsun .

man watch

-d Ardışık güncellemeler arasındaki farkları vurgulayın. Seçenek, değişimin kalıcı olduğunu vurgulayan, ilk yinelemeden bu yana en az bir kez neyin değiştiğini görmeyi sağlayan isteğe bağlı argümanı okur.


1
Çok iyi yakala!
Marc-Olivier Titeux, 19.03

0

Solaris, AIX veya HPUX veya UNIX'e benzer (Linux dahil), günlükleri veya benzeri şeyleri izlemek için komut dosyalarını kullanabilirsiniz:

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.