![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 9.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Chciałbym zrobić skrypt, który będzie zliczał ilość spędzonych /minut/godzin na serwerze. Jedyny sposób jaki mi przychodzi do głowy to pobieranie tej informacji z logów gdzie m.in. zapisuje się czas kiedy użytkownik wszedł na serwer i kiedy z niego wyszedł.
Logi wejścia/wyjścia z serwera są zapisywane w pliku z rozszerzeniem .log i wyglądają tak: Kod 5-10-09 06:23:30.163577|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving' 2015-10-09 06:23:33.997875|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105 2015-10-09 06:23:41.896634|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving' 2015-10-09 06:23:43.042064|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105 Ma ktoś jakiś pomysł co dalej z tym zrobić? W jaki sposób mam wykonać? ![]() Ten post edytował lekosm2 9.10.2015, 07:45:26 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 520 Pomógł: 102 Dołączył: 15.07.2014 Skąd: NULL Ostrzeżenie: (0%) ![]() ![]() |
Dobra, zrobienie tego jest banalne akurat, gorzej z wytłumaczeniem więc dam gotowca.
Ale w zamian za zadanie masz poczytać w manualu o każdej z użytych funkcji ![]()
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 0 Dołączył: 9.10.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki!
![]() A jeszcze jedno, bo w logach mam strasznie dużo osób i chciałbym by zliczało to dla każdego użytkownika, ID użytkownika, będzie przechowywane w przykładowo zmiennej $user_id w logach ID użytkownika jest zapisywane (id:2). Kod $TWOJ_LOG="5-10-09 06:23:30.163577|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving' 2015-10-09 06:23:33.997875|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105 2015-10-09 06:23:41.896634|INFO |VirtualServerBase| 1| client disconnected 'lekosm2'(id:2) reason 'reasonmsg=leaving' 2015-10-09 06:23:43.042064|INFO |VirtualServerBase| 1| client connected 'lekosm2'(id:2) from 11.11.11.111:57105"; zastąpiłem: Kod $TWOJ_LOG = file_get_contents('ts3server_2015-10-05__08_05_51.491210_1.log'); I kolejne pytanie. Da się w jakiś sposób by w zmiennej były wszystkie pliki z logami z folderu "logs"? Bo jak wyżej widać w zmiennej $TWOJ_LOG znajduje się jeden plik z logami, a mam ich kilka w przyszłości nawet kilkadziesiąt. @edit Gdy dodałem: $TWOJ_LOG = file_get_contents('ts3server_2015-10-05__08_05_51.491210_1.log'); Pokazało mi, że mój czas ile byłem to: 3d 22h 17m 44s A to jest niemożliwe, bo rzeczywisty czas jaki jest w logach, to 10 sekund spędzonego czasu. Ten post edytował lekosm2 9.10.2015, 08:45:55 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Oczywiście to jest mega do poprawki, optymalizacji itd. To jest szkic tego co chcesz. Nie przyjmuje wiele założeń ale: jeśli w logu dla usera pierwsze jest disconnect to wywalamy. Zakłada toto że user zawsze ma parę connect -> disconnect (nie uwzględnia np. connect, connect, disconnect, (np. z 2 klientów równocześnie)) Do tego jeśli wczytujesz z pliku to zamiast explode ma być file() z odpowiednią flagą Ten post edytował Pyton_000 9.10.2015, 09:35:54 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 12:32 |