Tartışma

Linux awk ile Loglardan İstatistik Çıkarma

Başlatan DataNomad · 13 Ağu 2026 18:36 · 3 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Awk, Linux ve Unix tabanlı sistemlerde yaygın olarak kullanılan güçlü bir metin işleme aracıdır. Özellikle log dosyalarından veri çıkarmak ve bu veriler üzerinden istatistikler elde etmek için idealdir. Bu yazıda, awk kullanarak log dosyalarından nasıl istatistik çıkarabileceğimizi detaylı bir şekilde inceleyeceğiz.

Awk, satır tabanlı bir işlem yapar ve genellikle her bir satırı alanlara böler. Varsayılan olarak, alanlar boşluk veya sekme ile ayrılır. Örneğin, basit bir log dosyamız olduğunu varsayalım:

CODE
1232023-10-01 12:00:01 ERROR User not found: user1
2023-10-01 12:05:15 INFO User logged in: user2
2023-10-01 12:10:30 ERROR User not found: user3


Bu log dosyasından, hata mesajlarının sayısını çıkarmak için aşağıdaki awk komutunu kullanabiliriz:

CODE
1awk '/ERROR/ {count++} END {print count}' log.txt


Bu komut, 'ERROR' kelimesini içeren satırları sayar ve toplam sayıyı ekrana yazdırır. count++ ifadesi, her 'ERROR' geçen satır için sayacı bir artırır. END bloğunda ise sayacı ekrana basar.

Bir başka örnek olarak, log dosyasındaki kullanıcı girişlerini saymak için şu komutu kullanabiliriz:

CODE
1awk '/INFO/ && /logged in/ {users[$NF]++} END {for (user in users) print user, users[user]}' log.txt


Burada, 'INFO' ve 'logged in' kelimelerini içeren satırlardaki son alanı ($NF) kullanıcı adı olarak alıyoruz ve her bir kullanıcı için sayacı artırıyoruz. END bloğunda ise kullanıcı adları ve giriş sayıları ekrana yazdırılıyor.

Awk ayrıca, istatistik çıkarmak için çeşitli fonksiyonlar sunar. Örneğin, log dosyasındaki her bir hata mesajının kaç kere tekrarlandığını görmek istiyorsak, şu şekilde bir komut kullanabiliriz:

CODE
1awk '/ERROR/ {errors[$0]++} END {for (msg in errors) print msg, errors[msg]}' log.txt


Bu komut, her bir hata mesajını anahtar olarak kullanır ve toplam tekrar sayısını saklar. END bloğunda, her mesaj ve tekrar sayısı ekrana basılır.

Sonuç olarak, awk, log dosyalarından istatistik almak için son derece etkili ve esnek bir araçtır. Bu örnekler, kullanıcı girişleri ve hata mesajları gibi belirli verileri çıkarmak için temel bir başlangıç noktası sunar. Awk ile daha karmaşık analizler yapabilmek için, döngüler, koşullu ifadeler ve daha fazla fonksiyon kullanarak kendi scriptlerinizi geliştirebilirsiniz.

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi