Killing Floor - lokalne statystyki
Dobrze, nie wysyłaj całego loga, podaj tylko przykładowe linie dla
Kod: Zaznacz cały
Shogun, False
http://kf.jned.eu/log.txt
Wybacz pomyliłem się z tym rozmiarem.
Ma tylko 17 Mb
Kod: Zaznacz cały
curl -s http://kf.jned.eu/log.txt | grep 'Shotgun False'
Ma tylko 17 Mb
I dobrze bo już sie martwiłem o I/O i pamiećMa tylko 17 Mb

Cały log dopiero zobrazował mi jak to wygląda. Wklejam poprawiony kf_users.awk
Kod: Zaznacz cały
$1 ~ /^[[:digit:]]/ {
connb[$2]= $3; nickb[$2]=$2;}
$2 ~ /New/ && $3 ~ /Player/ {
if (start) {
znalazl=0;
{for (x in conn) {
sub(/[\'\"]/, "", $4)
if ( x == $4) {
znalazl=1;
conn[x]++; break
}
}}
{if (znalazl == 0) {
sub(/[\'\"]/, "", $4)
conn[$4]= 1; id[$4]= substr($5, 4); nick[$4]=$4;}}
} else {
start=1;
sub(/[\'\"]/, "", $4)
conn[$4] = 1; id[$4]= substr($5, 4); nick[$4]=$4
}}
END {
tabela="nazwatabeli"; //config
for (l in conn) {
if (!nickb[l]) {
insert_tb="INSERT INTO "tabela "(id, player, connections) VALUES ("id[l]", '"nick[l]"', "conn[l]")"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""insert_tb"\"" | "/bin/bash"
} else {
if (conn[l] > connb[l]) {
update_tb= "UPDATE "tabela" SET connections="conn[l]" WHERE player='"nick[l]"'"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""update_tb"\"" | "/bin/bash"
}
}
}
}
Kod: Zaznacz cały
TRUNCATE tabela
Kod: Zaznacz cały
$~ ./kf_users.sh
id int(10) NO NULL
player char(40) NO NULL
connections int(11) NO NULL
/bin/bash: line 89: nieoczekiwany EOF podczas poszukiwania pasującego ``'
/bin/bash: line 156: błąd składni: nieoczekiwany koniec pliku
Kod: Zaznacz cały
$1 ~ /^[[:digit:]]/ {
connb[$2]= $3; nickb[$2]=$2;}
$2 ~ /New/ && $3 ~ /Player/ {
if (start) {
znalazl=0;
{for (x in conn) {
sub(/[\'\"\`]/, "", $4)
if ( x == $4) {
znalazl=1;
conn[x]++; break
}
}}
{if (znalazl == 0) {
sub(/[\'\"\`]/, "", $4)
conn[$4]= 1; id[$4]= substr($5, 4); nick[$4]=$4;}}
} else {
start=1;
sub(/[\'\"\`]/, "", $4)
conn[$4] = 1; id[$4]= substr($5, 4); nick[$4]=$4
}}
END {
tabela="nazwatabeli"; //config
for (l in conn) {
if (!nickb[l]) {
insert_tb="INSERT INTO "tabela "(id, player, connections) VALUES ("id[l]", '"nick[l]"', "conn[l]")"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""insert_tb"\"" | "/bin/bash"
} else {
if (conn[l] > connb[l]) {
update_tb= "UPDATE "tabela" SET connections="conn[l]" WHERE player='"nick[l]"'"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""update_tb"\"" | "/bin/bash"
}
}
}
}
Dodane:
Czekaj jeszcze, byki są.
Kod: Zaznacz cały
$1 ~ /^[[:digit:]]/ {
connb[$2]= $3; nickb[$2]=$2;}
$2 ~ /New/ && $3 ~ /Player/ {
if (start) {
znalazl=0;
{for (x in conn) {
sub(/[\'\"\`\\\$]/, "", $4)
if ( x == $4) {
znalazl=1;
conn[x]++; break
}
}}
{if (znalazl == 0) {
sub(/[\'\"\`\\\$]/, "", $4)
conn[$4]= 1; id[$4]= substr($5, 4); nick[$4]=$4;}}
} else {
start=1;
sub(/[\'\"\`\\\$]/, "", $4)
conn[$4] = 1; id[$4]= substr($5, 4); nick[$4]=$4
}}
END {
tabela="nazwatabeli"; //config
for (l in conn) {
if (!nickb[l]) {
insert_tb="INSERT INTO "tabela "(id, player, connections) VALUES ("id[l]", '"nick[l]"', "conn[l]")"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""insert_tb"\"" | "/bin/bash"
} else {
if (conn[l] > connb[l]) {
update_tb= "UPDATE "tabela" SET connections="conn[l]" WHERE player='"nick[l]"'"
print "mysql -u uzytkownik -h localhost --password=twojehaslo produkty -Bse \""update_tb"\"" | "/bin/bash"
}
}
}
}