Šta je novo?

Stats skripta za gaming server - POMOĆ

wladymeer

Čuven
Učlanjen(a)
15.03.2009
Poruke
3,783
Poena
505
Moja oprema  
CPU & Cooler
Intel i5-4690 (3.5GHz)
Matična ploča
MSI H97M Eco
RAM
Patriot 16GB DDR3 800 MHz
GPU
NVidia GTX 1060 3GB
Storage
Samsung 840 Evo 250GB • Gigabyte GP 480GB • Hitachi HDD 2TB
Zvuk
SSL 2+ • JBL LSR305
Monitor
Hisense H39A5100
Ostale periferije
Audio Technica M50x
Laptop
Apple Macbook M1 (16/256)
Tablet
iPad 2 / iPad 3
Mobilni telefon
Samsung Galaxy S20 FE
Pametni uređaji
Soundpeats Sonic
Steam
djedroid
Pristup internetu
  1. Optički internet
  2. Mobilni internet
Imam gaming server za fudbal PES6 .log fajlovi u real-time beleže sledeće:
- izabrane klubove
- lobby u kome se meč igra
- IP adrese
- svakih 5 proteklih minuta utakmice
- momenat kada padne gol

Hteo bih da napravim jednu skriptu / bota / cron ili kako se to već zove za Linux koji bi radio sledeće:
- Ažurirao promene u log fajlovima
- Izvlačio gore spomenute podatke
- Prenosio ih u HTML/PHP format na sajtu
- Kreirao arhivu rezultata

Problem je to što ne znam odakle da počnem pošto nemam neko "školovano" znanje. Sve vezano za web napravio sam "google + trial & error" metodom - imam neku viziju kako bi to moglo i trebalo da funkcioniše ali mi treba pomoć oko svega - od termina koji se upotrebljavaju do samog pristupa razrade.

Takodje me zanima da li postoji forum gde su ljudi voljni da pomognu oko cele ideje? Znam za StackOverflow ali on je više namenjen kada imaš neki konkretan problem pa da ga isprave.
I naravno, ako ima neke dobre duše koja bi bila voljna da pomogne ovde, hvala unapred, otvoren sam za svaku saradnju, a imam utisak da ovo nije neko preveliko maltretiranje za nekoga ko zna šta i kako treba da se uradi :)
 
Zvuči skroz izvodljivo. Za konkretnu implementaciju bih morao da vidim kako izgledaju logovi.
 
Radio sam nesto slicno,samo vezano za logove odredjenog programa. Sve u svemu, najlakse ti je kroz pajton,jer mozes odmah backend i frontend da radis. Ako imas neki normalan broj promena u logu (tipa 50 u 5 minuta), onda koristi watchdog ili pyinotify modul da dobijes info o promeni. Ako se log fajl menja bas stalno, lepo zabelezi u sqlite bazu ukupan broj bajtova do tog trenutka citanja, obradi podatke, pa napravi neki kron da ponavlja postupak na par minuta. Sledeci put samo citas od dela gde si zadnji put stao i to je to ukratko.
 
Za pocetak skripa ti prvo mora kopirati fajl, pa onda iz njega izvlaciti podatke, upisati ih u bazu i obrisati fajl. Prilikom upisa/citanja fajl se zakljucava pa ce ti se ili skripta ili game server srusiti ako nabode trenutak kad ovaj drugi koristi fajl.
Napravi neki dobar regex koji ce ti izvuci potrebne informacije iz loga.
 
Izvinite drugari - smrtni slucaj u porodici pa sam i zaboravio na temu.

Logovi evidentiraju sledeće:
- kada neko udje na server (username i IP)
- u koji je lobby ušao
- kada napravi sobu

I podatke koji su meni bitni:
- početak meča i izabrane klubove
- minutažu meča u razmaku od 5min u igri (odnosno 1 red - 50 sekundi}
- postignuti gol
- kraj meča ili eventualni prekid

Dakle po 1 meču bi bilo otprilike 30 redova loga u vremenskom razmaku od 20tak minuta.

U praksi se nije desilo gotovo nikad da se igra više od 10 mečeva istovremeno. Realnost je 3-4.

Znam da postoji već neka gotova skripta sa cron fajlovima ali pošto sam totalno van te priče bila bi mi potrebna pomoć da to postavim kako treba pogotovu jer nisam siguran šta sve ona beleži u praksi i da li ima sve što sam zamislio da radi.

Nažalost posto je potpuni neprofitabilni hobi u pitanju ne bih baš imao novca da to nekome platim adekvatno ali bih mogao da častim nešto onoga ko bi bio voljan da se poigra sa time.

Teoretski nije nemoguće da i sam to nastelujem jer sam recimo server za tu igru podigao na Linuxu a da mi je pre toga jedini dodir sa njim bio MS-DOS iz 90tih. Samo je vic u tome što bukvalno ne znam ni šta mi treba ni odakle da počnem [emoji16]

Sent from my Cool1 C106 using Tapatalk
 
Poslednja izmena:
Treba da posaljes primer tog log fajla ako ocekujes neki konkretan komentar kako bi taj log parser trebalo da izgleda.

Osnovni tip log parsera je da cita liniju po liniju log fajla, a dalje zavisi od formata log fajla.

Kod:
py

with open("filename") as log:
    for line in log:
        do_something(line)

Kod:
php

$log = fopen("filename", "r");
if ($log) {
    while (($line = fgets($log)) !== false) {
        do_something($line)
    }

    fclose($log);
}
 
Poslednja izmena:
Nazad
Vrh Dno