Bazı durumlarda squid veya sarg IP’den bilgisayar ismini çözümleyemeyebilir ve sarg raporları IP adresleri ile oluşturulacağından karışıklık oluşur.
Sorunu gidermek için, nbtscan kullanarak WORKGROUP içinde makine adını çözümleyebiliriz.
#!/bin/bash # 10-08-2013 Cem DOGAN # for i in `cat /var/log/squid/access.log|awk '{print $3}'|grep -o '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' |sort|uniq` do echo "+++"$i"+++" if grep -q $i /root/sarg.ip then zatenvar=`grep $i /root/sarg.ip` echo $zatenvar" dosyada zaten bulunuyor" else name=`/usr/sbin/nbtscan $i |grep $i |grep -v NBT|awk '{print $2}'` if [ $name ] then echo $i":"$name>> /root/sarg.ip.tmp #sort /root/sarg.ip.tmp|uniq > /root/sarg.ip echo $i,$name "eklendi" else dhcpden=`cat /var/lib/dhcpd/dhcpd.leases |grep -A 10 $i| grep hostname| awk -F " '{print $2}'|sort|uniq` if [ $dhcpden ] then # echo $i":"$dhcpden>> /root/sarg.ip.tmp echo $i":"$dhcpden|tr "[:lower:]" "[:upper:]">> /root/sarg.ip.tmp echo $i":"$dhcpden fi fi fi done sort /root/sarg.ip.tmp|uniq > /root/sarg.ip
Gün içinde topladığımız ip ve bilgisayar isimlerini sed kullanarak başka bir dosyada düzenlenmiş şekilde hazırlıyoruz.
#!/bin/bash # 10-08-2013 Cem DOGAN # INPUT=/root/sarg.ip OLDIFS=$IFS IFS=: [ ! -f $INPUT ] && { echo "$INPUT file not found"; exit 99; } while read ip name do params+="s/$ip/$name/g;" done < $INPUT IFS=$OLDIFS params=`echo $params| sed 's/;$//'` sed -e "$params" /var/log/squid/access.log > /var/log/squid/access.log.sarg
Artık sarg ayarlarımızı yeni oluşturduğumuz dosyadan okuyacak şekilde yapabiliriz.
dhcpd ile lease time’ı uzun tutmak ve günlük olarak oluşturulan ip tablosunu temizlemek de gerekebilir. Gerisi size kalmış.