анализаторы логов CS1.6

CS 1.6 и другие игры от Valve

Модератор: Dimanok

Правила форума
Внимание!

Перед созданием новой темы, ознакомление с FAQ обязательно!

Создание тем с вопросами описанными в FAQ карается баном.

анализаторы логов CS1.6

Сообщение AVX » 18 дек 2008, 00:40

имеется: сервер cs1.6 на одном компе, веб-сервер на другом.
Периодически загружаются логи сервера cs1.6 на сервер www (через ftp, или еще как, не важно).
Нужно сделать на основе логов статистику использования карт.

вариант 1 - уже сделал, на базе скрипта bash. Но не знаю, как организовать сортировку.
вот код:
Код: Выделить всёРазвернуть
#!/bin/bash

cd ~/mirrorlogs
d=$(date +%d)
m=$(date +%m)

echo -n `date` 
echo "- Начало копирования логов сервера pugachev-cs.vfose.ru"
lftp -c connect -e "mget L${m}${d}*.log" -u ftp_login,ftppassw pugachev-cs.vfose.ru
echo -n `date`
echo "- Начало вычисления статистики"

#записываем header (начало html-страницы)
cat header > stats.htm

#пишем саму статистику по картам

grep "Started\ map\ " L${m}${d}*.log > Lmapday.log
grep "Started\ map\ " L${m}*.log > Lmapmonth.log
grep "Started\ map\ " L[0-9][0-9]*.log > Lmapall.log
sync

for csmap in de_inferno de_aztec de_dust de_dust2 de_nuke de_train cs_counterquake cs_mansion fy_pool_day aaa_deagle 1hp 35hp 35hp_2 cs_mansion2 cs_mansion3 cs_mansion5 aim_ak-colt aim_aztec aim_headshot awp_city awp_map awp_map3 awp_map5 de_dust2_2x2 de_dust4 mini_dust2 de_dust2_2006 de_dust2_night de_go_go_go v2 cs_747 de_afghan cs_italy de_aztec2 de_aztecx de_cbble de_clan1_mill de_cpl_mill de_cpl_strike de_2minaret de_piranesi de_prodigy de_rats de_railroad de_rotterdam de_storm de_survivor de_torn de_vertigo de_vegas de_chateau VS fy_snow 1337_ak47 a2k_aimskillz cs_newmansion
do
LdayCount=`grep -c \""$csmap"\" Lmapday.log`
LmonthCount=`grep -c \""$csmap"\" Lmapmonth.log`
LallCount=`grep -c \""$csmap"\" Lmapall.log`
#за сегодня, текущий месяц, всего. Дописываем строку в stats.htm
echo "<tr><td>$csmap: </td><td> ${LdayCount} </td><td> ${LmonthCount} </td><td> ${LallCount} </td></tr>"  >> stats.htm
done
echo "<tr><td><font color=\"green\"><hr>Всего карт: </td><td><font color=\"green\"><hr> `grep -c map Lmapday.log` </td><td><font color=\"green\"><hr> `grep -c map Lmapmonth.log` </td><td><font color=\"green\"><hr> `grep -c map Lmapall.log` </td></tr>"  >> stats.htm

#записываем footer (нижнюю часть, завершение html-страницы)
cat footer >> stats.htm

#сохраняем изменения на диск
sync

#копируем в папку веб-сервера
cp -f stats.htm /var/www/html/stats.htm

echo -n `date`
echo "- Завершено."



получаем страничку в html по адресу http://pug-cs.vfose.ru/stats.htm

вариант 2 - устанавливаем halfStats, это скрипт на перле, по-идее должен выдавать и статистику карт (с сортировкой) и статистику игроков и используемого оружия. Однако, выдает реально только статистику карт, остальное по нулям. В консоль скрипт выводит No wonID, No PlayerNum
В копирайтах получаемых страниц есть дата 2001 год и ссылка на сайт http://www.halfstats.com - не работает (this domain for sale - домен продается). В общем, автор пропал, скрипт довольно большой, перл я не знаю, потому поправить не смогу :(
МОжет есть еще какие анализаторы логов? хотелось бы именно на базе какого-нибудь скрипта, чтобы можно было что-то менять.
AVX
Активный участник
 
Сообщения: 227
Зарегистрирован: 07 ноя 2008, 23:36
Откуда: Пугачев
Домен: http://pug-cs.ru/

Re: анализаторы логов CS1.6

Сообщение zk » 18 дек 2008, 00:59

А как же старый и горячо любимый PsychoStat? =))
Помнится ещё лет 5 назад его ставил на кс сервере, классная штука, в локалке все визжали от восторга =))
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: анализаторы логов CS1.6

Сообщение AVX » 18 дек 2008, 07:59

а оно разве не на том же компе ставится, где и кс сервер?
тут же на разных. Хотя попробовать можно, выложите доки от него сюда или ссылки.
AVX
Активный участник
 
Сообщения: 227
Зарегистрирован: 07 ноя 2008, 23:36
Откуда: Пугачев
Домен: http://pug-cs.ru/

Re: анализаторы логов CS1.6

Сообщение zk » 18 дек 2008, 12:24

Он может просто обрабатывать логи из папки, может скачивать их сам с другого сервера и обрабатывать, а ещё может с помощью плагина к кс писать всё что надо сразу в MySQL которая тоже может быть на удалённом компе, ну по крайней мере 5 лет назад так было.

AVX писал(а):выложите доки от него сюда или ссылки.

Используй гугл =)
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: анализаторы логов CS1.6

Сообщение AVX » 18 дек 2008, 19:38

погуглил. нагуглил. зашел на ихний сайт. скачал. поставил. настроил (как сумел). запустил скрипт (обрабатывает и сейчас локальные логи, уже скачанные).

ТАк вот вопрос:

Если я сменю расположение логов с локальных на фтп (ну конечно с указанием реквизитов соединения) - он их снова будет качать ВСЕ и обрабатывать по-новой, или все-же сообразит, что такие-то логи уже были обработаны и качать их не надо?

.. и в догонку - как сделать, чтобы только указанные игроки отображались в статистике? а остальные -нет.

ЗЫ. опять гуглить?
ЗЗЫ. неплохо бы тут еще FAQ по установке и настройке psychostats
AVX
Активный участник
 
Сообщения: 227
Зарегистрирован: 07 ноя 2008, 23:36
Откуда: Пугачев
Домен: http://pug-cs.ru/

Re: анализаторы логов CS1.6

Сообщение zk » 18 дек 2008, 22:43

AVX писал(а):ЗЫ. опять гуглить?

Ну ты потестируй локально, или доку почитай.
AVX писал(а):ЗЗЫ. неплохо бы тут еще FAQ по установке и настройке psychostats

Очень даже неплохо, давно всех прошу, все боятся писать, напишешь? Буду оооочень благодарен =))
zk
Администратор
 
Сообщения: 1971
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: анализаторы логов CS1.6

Сообщение AVX » 18 дек 2008, 23:01

я-то напишу как время появится (не раньше следующей недели, в лучшем случае, иначе - после новогодних праздников).

по вопросу о пересчете статистики сам уже выяснил - он запоминает, какие файлы обработал - НО для каждого источника логов отдельно. Т.е. переключил на фтп - и он пошел их по новой качать. Прервал - следующий запуск с того лога, который последним был обработан (т.е. снова все не качает - что есть гуд). ОДнако свыше 300 мегов логов качать во время работы сервера - нехорошо. Поставил на ночь, на 3 часа. Завтра посмотрим, как получится.

про фильтрацию вывода:

Излазил сайт проекта - ничего похожего не нашел. Есть там и форум -ничего. гугление выдает кучу ссылок на форумы или такие же странички со статистикой - но про фильтрацию вывода по указанному списку ничего нет.
Вобщем, не знаю, что делать.

Осталось только опять же скриптом bash вырезать из логов всех игроков, кроме тех, что указаны в списке, а потом передавать управление в stats.pl
Но тут мороки много, с наскоку даже мысли не приходит, как именно можно сделать такое.
AVX
Активный участник
 
Сообщения: 227
Зарегистрирован: 07 ноя 2008, 23:36
Откуда: Пугачев
Домен: http://pug-cs.ru/

Re: анализаторы логов CS1.6

Сообщение AVX » 19 дек 2008, 21:48

выкрутился все-таки :)

Зашел в phpmyadmin, выполнил запросы:

для снятия признака показа игроков в статистике (всех)
Код: Выделить всёРазвернуть
UPDATE `ps3`.`ps_plr` SET `allowrank` = '0'


выполнил следующий SQL-запрос:
Код: Выделить всёРазвернуть
SELECT `plrid`, `uniqueid` FROM `ps_plr` WHERE CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'gangster' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'AVX' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'Korsairs' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'RIDDICK' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'leo' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'Dirty rags: B@Hy4uu\' H@$oK' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'Dirty rags: ~KiSska~Blondino4ka' OR CONVERT( `ps_plr`.`uniqueid` USING utf8 ) = 'Raf'

В phpmyadmin выполняем данный запрос, получаем табличку с именами и prlid игроков. Имена вписал тех, кого требуется отображать в статистике.

потом в файле /var/www/psychostats3.1/lib/PS/Game.pm
меняем строки, начиная с 1304:
Код: Выделить всёРазвернуть
      $allowed = ($row->{plrid}==1 || $row->{plrid}==2 || $row->{plrid}==3 || $row->{plrid}==874 || $row->{plrid}==3399 || $row->{plrid}==5270 || $row->{plrid}==2 || $row->{plrid}==6873 || $row->{plrid}==11658)
#         ((grep { ($row->{$_}||0) < $rules->{'player_min_'.$_} } @min) == 0)
#         &&
#         ((grep { ($row->{$_}||0) > $rules->{'player_max_'.$_} } @max) == 0)
       ? 1 : 0;


id игроков из полученной таблицы можно посмотреть.

Это запрещает установку allowrank в базе по признакам мин/макс параметров игрока (kill, death, skill, online time, etc.), зато включает отображение заданных id игроков. Т.е. игроки из определенного списка там будут всегда. После изменения (удаления-создания) базы (а возможно и после сброса статистики) этот файл придется снова поменять в соответствии с новыми id (как сделать правильно, не знаю, т.к. не знаю СОВСЕМ ни php, ни perl, сделал, основываясь только на интуиции) :)
AVX
Активный участник
 
Сообщения: 227
Зарегистрирован: 07 ноя 2008, 23:36
Откуда: Пугачев
Домен: http://pug-cs.ru/

Re: анализаторы логов CS1.6

Сообщение Conteo » 19 дек 2008, 23:05

Организуй статью и тебе спасибо скажут :wink:
Изображение
Пользователи федоры - как тараканы. Слабые духом и нервами давно вымерли, а оставшихся в живых уже ничем не взять.
Аватара пользователя
Conteo
Активный участник
 
Сообщения: 1813
Зарегистрирован: 14 мар 2008, 13:21
Откуда: Саратов, Заводской район
Домен: http://conteo.vfose.ru


Вернуться в Counter Strike

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10