“Kaydırıcı” bir günlük dosyasını görüntüleme


28

Komut satırı üzerinden, takip etmek istediğim bir günlük dosyasına sahibim.

İstediğim şey, temel olarak, tailgünlük güncellendiğinde metni günlüğe yeni satırlar eklenirken yukarı kaydırmak için yenilediğinde yenilenmesi.

Dışarıda bir kod yazmadan bunu yapan bir şey var mı?

Yanıtlar:


35

tailvardır -fseçeneği:

Sayfadan man:

-f, --follow [= {name | tanımlayıcı}] dosya büyüdükçe eklenen veri çıkışı; -f, --follow ve --follow = tanımlayıcı eşdeğerdir

Böylece yazarsanız:

tail -f [path_and_name_of_logfile] - Çıktıyı terminalde log dosyasının kendisine eklenmiş olarak göreceksiniz.

NB [path_and_name_of_logfile]parametredir, bir örnek vermek gerekirse:

tail -f /var/log/messages

-n [number_of_lines]Seçenekle birleştirirseniz , çıktıyı dosyadaki son [number_of_lines] içinden başlatabilirsiniz - örneğin

tail -n 10 -f /var/log/Xorg.0.log

görüntü tanımını buraya girin


Bazı programlar günlük dosyalarını düzenli aralıklarla değiştirir, eskisini yeni bir isme taşır (ör. Log.0) ve baştan başlar.

NB logrotate bunu, kendisi yapmayan diğer programların dosyalarını kaydetmek için yapar.

tail -f yeniden adlandırıldıktan sonra eski dosyayı izlemeye devam edecek.

tail -F dosyayı adıyla takip edecek, böylece yeni dosyayı izlemeye geçecektir.


Her iki cevap da yerinde ... Tail'in bu seçeneğe sahip olduğunu bilmiyordu. Ekstra bilgi için çek olsun.
WernerCD

Bir kenara, orada da tailing günlüğünü renklendirmek için orada birkaç harika komut dosyaları. akla gelen bir örnek colorize.pl'dir ve bunu colorize betiğinden geçirerek elde edersiniz. örneğin: tail -f / var / log / messages | /home/me/colorize.pl
lazyPower

@ lazyPower Aynı zamanda güzel. Şu andaki durumumda süper faydası olacağını düşünmeme rağmen, bunu düzeltmek zorunda kalacağım.
WernerCD

18

tailKesinlikle bunu yapmanın olağan yolu olsa da less, aynı özelliğe sahip olduğu ve bazen daha kullanışlı olduğu belirtilmelidir.

Bir dosyayı lessaçtıysanız , dosyayı izlemesi için Shift+ ' Fya basabilirsiniz (örn. Yeni satırlar gibitail -f ). Bu moddan Ctrl+ ile çıkabilirsinizC

Ayrıca başlayabilirsiniz lessile +Fbu durumda o olacak, seçenek başlatmak bu modda. Genel olarak konuşma +, lessbaşlangıçta çalıştırılacağı "klavye komutlarını" vermek için kullanılabilir .

Bunun için kullanılması less, gerektiğinde dosyayı kolayca arayabilir veya diğer alanları görüntüleyebilme avantajına sahiptir. Örneğin bunu günlük dosyalarında sık sık yaptım.


Asla "takip et" demedi (daha çok, daha az, kuyruk, kedi). Bir şeyler bilmek güzel.
WernerCD

1
Kabul. Ben daha azını tercih ederim. Ctrl-C ilginç bir şey tespit ettiğinizde kaydırmayı durdurur, sonra geri veya ileri kaydırmak için b ve / veya? ileri veya geri aramak için. g sizi dosyanın başlangıcına, G ise sonuna kadar götürür. İhtiyacın olan her şey.
Martin Dow


4

tail bir dosyaya eklenen verileri izlemek ve çıkarmak için iki uygulamaya sahiptir

  • dosya tanımlayıcısını takip et
  • belirli bir isimdeki bir dosyayı takip et

Parametre ile -f, --followve --follow=descriptor,tail dosya tanıtıcı izler. Bu yöntem, dosyanın yeniden adlandırma boyunca izlenmesine izin verir, ancak dosya döndürüldüğünde izleme durur (farklı bir dosya tanıtıcısına sahip yeni bir dosya oluşturulur).

Döndürülen dosyaları takip ederken, ya --follow=nameda -Feşittir parametresini kullanın --follow=name --retry. Bu şekilde tail, olası dönüşün üstesinden gelmek için dosyayı periyodik olarak yeniden açabilirsiniz.


1

Ben ccze düşünüyorum sizin için doğru araç.

Aynı renklendirmeyi yapar. Kütüğün aşağı doğru kaydığını izleyebilirsiniz, ancak satırları renklerle yazdırıldığı için okunması daha kolaydır (hatalar kırmızı vb.). Böyle bir şeyle hızlıca deneyebilirsiniz:

tail -f /var/log/syslog | ccze
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.