Büyüyen bir günlük dosyasında yalnızca yeni girdileri görüntüleme


20
tail -f x.log

Komut isteminde büyüyen bir günlük dosyasını görmek için bu komutu kullanın.

Yalnızca çalıştırdıktan sonra dosyaya yazılan günlük satırlarını görmekle tail -filgileniyorum ve yapmadan önce dosyaya yazılan günlüklerle ilgilenmiyorum tail -f. Ancak tail -fbaşlangıçtaki komut, son 10 satırı alır ve görüntüler.

Bu beni karıştırıyor, bazen bu günlükler yeni oluşturulmuşsa (ya da eski günlüklerse)?

Peki, tail -f komutunu yalnızca yeni girdilerin çıktısını almak için nasıl özelleştirebilirim?

logs  tail 

Yanıtlar:


31

Deneyebilirsin:

tail -n0 -f x.log

Gönderen adam sayfası :

-n, --lines = K
, son 10 yerine son K satırını çıkarır ; veya Kth ile başlayan satırları çıktılamak için -n + K tuşlarını kullanın


12

-n00 satırı göstermek için seçeneği kullanabilirsiniz . Yani

tail -n0 -f some.log

2

Ayrıca şu lesskomutu kullanabilirsiniz:

  1. less file_name.log (günlük dosyası açılır ve günlük dosyasının ilk sayfasını gösterir)
  2. shift+ tuşuna basın f(kuyruk -f gibi hareket etmek için)
  3. Günlük dosyasında herhangi bir anahtar kelime aramanız gerekirse. kuyruk modundan çıkmak ve anahtar kelimeyi anahtar kelime ve anahtar kelime olarak aramak için ctrl+ tuşuna basın .c/?

Bu, büyüyen bir günlük dosyasındaki yalnızca yeni girdileri görüntülemez .
Ürkütücü

0

Docker konteyneri içindeki girişleri izlemek zorunda kaldığımda bu yaklaşımı oluşturdum:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

Bu yardımcı olur umarım!

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.