Log dosyalarındaki bot trafiğini ayıklamak, özellikle yüksek hacimli sunucu loglarında önemli bir ihtiyaç haline geldi. Bu script, yaygın bot IP adresleri veya kullanıcı ajanlarını tespit ederek loglardan ayırmanıza olanak tanır. Aynı zamanda, belirli kullanıcı ajanları veya IP bloklarıyla ilgili filtreleme seçenekleri de içerir.
İlk olarak, log dosyanızın formatını dikkatli incelemeniz gerekir. Örneğin, Apache veya Nginx logları genellikle belirli düzenlerde IP, zaman ve kullanıcı ajanı içerir. Bu script, bu bilgileri kullanarak bot trafiğini tespit eder ve ayıklar.
Script temel olarak şu adımlardan oluşur:
- Belirli IP listelerini veya kullanıcı ajanlarını içeren bir dosya oluşturun (örneğin, bot_ips.txt veya bot_user_agents.txt).
- Log dosyasını satır satır okuyup, her satırdaki IP ve User-Agent bilgilerini ayıklar.
- IP veya User-Agent listeleriyle karşılaştırma yapar.
- Eşleşen satırları veya satırların toplamını çıktı olarak verir.
Örnek olarak, aşağıdaki bash kodu, log dosyasındaki bot trafiğini ayıklama konusunda temel bir örnektir:
[code]
#!/bin/bash
LOG_FILE="access.log"
BOT_IP_FILE="bot_ips.txt"
BOT_UA_FILE="bot_user_agents.txt"
Bot IP ve User Agent listelerini okuma
mapfile -t bot_ips < "$BOT_IP_FILE"
mapfile -t bot_uas < "$BOT_UA_FILE"
Log satırlarını tarama ve filtreleme
while IFS= read -r line; do
# IP ve User-Agent extract
ip=$(echo "$line" | awk '{print $1}')
ua=$(echo "$line" | grep -oP '(?