Themenersteller
#1
grep ile işlem geçmişini inceleme
Günlükler veya işlem geçmişini analiz etmek, sistem güvenliği ve performans takibi açısından temel bir beceridir. Özellikle merkezi loglar veya kullanıcı oturumlarının kaydedildiği dosyalarda, hangi komutların ne zaman çalıştırıldığını anlamak için basit ama etkili bir yol olarak grep kullanılır. Aşağıdaki yaklaşımlar, pratik ve güvenli bir başlangıç sunar.
Güvenlik ve performans bağlamında dikkat edilmesi gerekenler: log dosyalarının konumları ve erişim izinleri sistemden sisteme değişir. Özellikle /var/log dizini, log rotasyonu ve tamponlama politikaları ile şekillenir. Desenleri net tutmak için mümkün olduğunca özel ifadeler kullanın; geniş desenler çoğu zaman gereksiz çoklu sonuçlara yol açar. Ayrıca büyük log dosyalarında performans kaygısı olabilir; bu durumda grep yerine zgrep (gzipped loglar için) veya rg gibi modern araçlar daha hızlı sonuç verebilir.
Bu alandaki kişisel deneyimleriniz veya karşılaştığınız sık karşılaşılan desenler nelerdir? Özellikle hangi log kaynaklarını hangi desenlerle taradığınızı ve elde ettiğiniz değerli ipuçlarını paylaşır mısınız?
Günlükler veya işlem geçmişini analiz etmek, sistem güvenliği ve performans takibi açısından temel bir beceridir. Özellikle merkezi loglar veya kullanıcı oturumlarının kaydedildiği dosyalarda, hangi komutların ne zaman çalıştırıldığını anlamak için basit ama etkili bir yol olarak grep kullanılır. Aşağıdaki yaklaşımlar, pratik ve güvenli bir başlangıç sunar.
- Basit arama: Belirli bir kullanıcı veya süreç için kayıtları filtrelemek. Örneğin bash geçmişi veya komut üretimini içeren loglar üzerinde, belirli bir kullanıcıyı veya komut desenini aramak için grep kullanılabilir. Örnek: veyaCODE
1
grep -i "kullaniciadi" /var/log/auth.logCODE1
grep -i "sudo" /var/log/auth.log
- Zaman damgası ile daraltma: Log dosyaları çoğu zaman ISO veya geleneksel zaman damgaları içerir. Tarihe göre arama yapmak için tarihle eşleşen desenler kullanılır. Örnek: veyaCODE
1
grep '^2024-07' /var/log/syslogCODE1
grep 'Aug 12' /var/log/syslog
- Çok satırlı veya zor desenler: İşlem geçmişi bazen birden çok satıra yayılır. GNU grep’in -P (Perl regex) ve -z (nul-terminated) benzetmeleriyle daha karmaşık desenler yakalanabilir. Ayrıca -e ile birden çok deseni aynı anda arama yapabilirsiniz. Örnek: CODE
1
grep -P -i 'session|user|command' /var/log/auth.log
- Dosya boyutu ve günlük dönemiyle arama: Eski günlükler arşivlenmiş olabilir. Belirli bir aralığı hedeflemek için log rotasyonu ve tarih etiketlerini birlikte kullanmak önemlidir. Örnek: CODE
1
grep -R --include='*.log' -i 'session opened' /var/log/
- Güvenlik odaklı uygulamalar: Komut geçmişini analiz ederken kullanıcı adları, sudo yetkileri veya SSH oturum açma denemeleri gibi kritik olayları izlemek için kısa anahtar kelimeler hedeflenir. Örnek: CODE
1
grep -i -E 'sudo|ssh|failed|invalid' /var/log/auth.log
- Sonuçları anlamlı hale getirmek: Çıktıyı daha okunabilir kılmak için grep ile birlikte awk veya cut kullanmak, alanları ayırıp özet bilgi çıkarmayı kolaylaştırır. Örnek: CODE
1
grep -i "sudo" /var/log/auth.log | awk '{print $1, $2, $3, $11}'
Güvenlik ve performans bağlamında dikkat edilmesi gerekenler: log dosyalarının konumları ve erişim izinleri sistemden sisteme değişir. Özellikle /var/log dizini, log rotasyonu ve tamponlama politikaları ile şekillenir. Desenleri net tutmak için mümkün olduğunca özel ifadeler kullanın; geniş desenler çoğu zaman gereksiz çoklu sonuçlara yol açar. Ayrıca büyük log dosyalarında performans kaygısı olabilir; bu durumda grep yerine zgrep (gzipped loglar için) veya rg gibi modern araçlar daha hızlı sonuç verebilir.
Bu alandaki kişisel deneyimleriniz veya karşılaştığınız sık karşılaşılan desenler nelerdir? Özellikle hangi log kaynaklarını hangi desenlerle taradığınızı ve elde ettiğiniz değerli ipuçlarını paylaşır mısınız?
