Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2021-11-18 12:33:20

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

zgrep / grep i maksymalne obciążenie procesora

Witam,

Mam taki problem. Mianowicie potrzebuję wyciągnąć zadane linie ze wskazaną frazą z plików logów apache
( log access.log oraz spakowanych access.log_data.gz )

wykonuję to

zgrep -w 'FRAZA' /var/log/apche2/access.log*  >  /tmp/plik_docelowy.txt"

Samo polecenie działa poprawnie, z tym, że plików logów jest dość sporo a powyższą komendę
wykonuje z poziomu serwera www ( skrypt php z shell_exec ) i generalnie mam dość długi timeout po czym wywala błąd serwera ( error 524 A timeout occurred ).
Oczywiście docelowo skrypt jest wykonany... ale słabo wygląda to generowanie od strony użytkownika.

- sprawdziłem to, i w momencie wykonywania skryptu, zużycie procesora podskakuje do 98-100% ( przez grepa )

Jest jakaś możliwość żeby obejść ten problem ( np coś zamiast zgrepa czy jakieś dodatkowe kontrole )

Pozdrówki

Ostatnio edytowany przez dawid77 (2021-11-18 12:34:30)


dawid

Offline

 

#2  2021-11-18 14:00:15

  megabajt - Użytkownik

megabajt
Użytkownik
Skąd: Wrocław
Zarejestrowany: 2012-03-07

Re: zgrep / grep i maksymalne obciążenie procesora

nice/ionice

Offline

 

#3  2021-11-19 09:58:33

  dawid77 - Użytkownik

dawid77
Użytkownik
Zarejestrowany: 2005-12-15

Re: zgrep / grep i maksymalne obciążenie procesora

Dzięki za info, ale niczym nie mogę tego zbić.
CPU przy każdym uruchomieniu wpada na 100%. Ma ktoś moze pomysł jak wykonać te polecenie tak aby nie obciążać procesora na 100%?


dawid

Offline

 

#4  2021-11-19 10:14:22

  samu - Stały bywalec

samu
Stały bywalec
Skąd: ~/.linux/dug
Zarejestrowany: 2011-06-15

Re: zgrep / grep i maksymalne obciążenie procesora

W prymitywny sposób można i tak:

Kod:

zcat logi.gz | pv -L 10m -q | grep 'szukany_tekst'

https://www.debian.org/logos/button-mini.png

Offline

 

#5  2021-11-19 11:50:18

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: zgrep / grep i maksymalne obciążenie procesora

Przez wywoływanie takiego polecenia z poziomu  PHP tylko sobie utrudniasz robotę.

Kod:

scp root@SERWER:/var/log/apache/access.* $PWD/logi_apacha/

i masz logi apacha pod nosem w folderze $PWD/logi_apacha/ i możesz je sobie przeglądać lokalnie grepem czy czymkolwiek innym.

Przy okazji wymijasz standardowe problemy PHP, limit CPU dla skrypta PHP, timeout dla skrypta, itp.
Pomijam fakt, że funkcja system z PHP jest podstawową przyczyną włamań na serwery po WWW,
a już dawanie PHP wjazd do /var/log/*  pachnie samobójstwem.

Ostatnio edytowany przez Jacekalex (2021-11-19 12:27:33)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)