Распарсить вывод ps -aux
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Alex Keda
- стреляли...
- Сообщения: 35476
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Распарсить вывод ps -aux
пока остановился на том что было.
надо инетерфейс делать.
надо инетерфейс делать.
Убей их всех! Бог потом рассортирует...
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- лейтенант
- Сообщения: 966
- Зарегистрирован: 2007-12-05 9:45:18
- Откуда: Mytischi
Re: Распарсить вывод ps -aux
возвращаясь к первоначальному посту, в awk есть ассоциативные массивы, с их помощью можно легко посчитать суммы столбиков для каждого пользователя.
ПС одной командой
ПС одной командой

- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
-
- лейтенант
- Сообщения: 966
- Зарегистрирован: 2007-12-05 9:45:18
- Откуда: Mytischi
Re: Распарсить вывод ps -aux
Извиняюсь, awk учил когда лабораторки сдавал
у препода в лаборатории стоял линух. Проблема в том что авк в бсд и линуксе отличается. Так вот, что бы появилась поддержка ассоциативных массивов(хотя она может и есть в бсд версии, но в бсд версии нет интересующей нас функции asort() ) которые я упоминал надо собрать lang/gawk и соответсвенно пользовать gawk вместо awk.
Пример с гавк:
сразу скажу, я немного подмухлевал и изменил файлик который парсить надо, просто лень читать про выделение подстрок по символам( в нашем случае нас интересует символ ','). Если надо то дам код конкретно под ваш файлик, а пока пример:
А вот намухлёванный фалик для парсинга log:
вот результат:
ЗЫ я знаю какой у меня уродский стиль программирования, поэтому критикуйте, буду исправляться 

Пример с гавк:
сразу скажу, я немного подмухлевал и изменил файлик который парсить надо, просто лень читать про выделение подстрок по символам( в нашем случае нас интересует символ ','). Если надо то дам код конкретно под ваш файлик, а пока пример:
Код: Выделить всё
cat log | gawk ' {i1[$1]+=$2; i2[$1]+=$3; i3[$1]=$1;} END {d=asort(i1);asort(i2);asort(i3); for (k=0; k!=d; k++) printf "User: %s downloaded %d and uploaded %d\n",i3[k+1],i1[k+1],i2[k+1];}'
Код: Выделить всё
lissyara 0 9
lissyara 1 8
lissyara 2 7
lissyara 3 5
lissyara2 4 1
lissyara2 4 5
Код: Выделить всё
User: lissyara downloaded 6 and uploaded 6
User: lissyara2 downloaded 8 and uploaded 29

- zingel
- beastie
- Сообщения: 6204
- Зарегистрирован: 2007-10-30 3:56:49
- Откуда: Moscow
- Контактная информация:
Re: Распарсить вывод ps -aux
Код: Выделить всё
lissyara 0 9
lissyara 1 8
lissyara 2 7
lissyara 3 5
lissyara2 4 1
lissyara2 4 5

Z301171463546 - можно пожертвовать мне денег
-
- лейтенант
- Сообщения: 966
- Зарегистрирован: 2007-12-05 9:45:18
- Откуда: Mytischi
Re: Распарсить вывод ps -aux
да, с мухлеванием увлёкся немного 
увидел ошибку, поправил немного, теперь даёт правильный результат, asort() вражина сортирует массив..., вот с поравкой:

увидел ошибку, поправил немного, теперь даёт правильный результат, asort() вражина сортирует массив..., вот с поравкой:
Код: Выделить всё
gawk ' {i1[$1]+=$2; i2[$1]+=$3; i3[$1]=$1;} END {d=asort(i3); for (k=0; k!=d; k++) printf "User: %s downloaded %d and uploaded %d\n",i3[k+1],i1[i3[k+1]],i2[i3[k+1]];}'
-
- лейтенант
- Сообщения: 751
- Зарегистрирован: 2008-07-15 16:11:11
Re: Распарсить вывод ps -aux
такой сбор статистики ведь не охватит сколько ресурсов потребляет апач для каждого юзера?
а это не мало
плюс скрипт пользователя может запускаться много раз, но быстро... он тоже не попадет в статистику?

плюс скрипт пользователя может запускаться много раз, но быстро... он тоже не попадет в статистику?
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Распарсить вывод ps -aux
+- конечно есть, но в целом примерно ситуация вырисовывается верная.icb писал(а):такой сбор статистики ведь не охватит сколько ресурсов потребляет апач для каждого юзера?а это не мало
плюс скрипт пользователя может запускаться много раз, но быстро... он тоже не попадет в статистику?
з.ы. что-то есть лучшее?
-
- лейтенант
- Сообщения: 966
- Зарегистрирован: 2007-12-05 9:45:18
- Откуда: Mytischi
Re: Распарсить вывод ps -aux
конечно таким образом статистика будет иметь погрешность. Наверно,любая статистика не "безгрешна". Скорее всего топикстартера такой расклад вполне устраивет, сервера бывают разные и статистика бывает разной.
- Alex Keda
- стреляли...
- Сообщения: 35476
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
- serge
- майор
- Сообщения: 2133
- Зарегистрирован: 2006-07-30 15:34:14
- Откуда: Саратов
- Контактная информация:
Re: Распарсить вывод ps -aux
С sa толком не разобрался. Да и не совсем понятно как оттуда достать нужные мне параметры.
-
- лейтенант
- Сообщения: 751
- Зарегистрирован: 2008-07-15 16:11:11
Re: Распарсить вывод ps -aux
А как можно получить трафик юзера?