Распарсить вывод ps -aux

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Распарсить вывод ps -aux

Непрочитанное сообщение Alex Keda » 2008-06-07 14:52:52

пока остановился на том что было.
надо инетерфейс делать.
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.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/

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Распарсить вывод ps -aux

Непрочитанное сообщение opt1k » 2008-07-22 14:45:53

возвращаясь к первоначальному посту, в awk есть ассоциативные массивы, с их помощью можно легко посчитать суммы столбиков для каждого пользователя.
ПС одной командой :)

Аватара пользователя
serge
майор
Сообщения: 2133
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Re: Распарсить вывод ps -aux

Непрочитанное сообщение serge » 2008-07-22 19:58:04

to opt1k:
На примере покажете?

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Распарсить вывод ps -aux

Непрочитанное сообщение opt1k » 2008-07-22 21:31:39

Извиняюсь, awk учил когда лабораторки сдавал :) у препода в лаборатории стоял линух. Проблема в том что авк в бсд и линуксе отличается. Так вот, что бы появилась поддержка ассоциативных массивов(хотя она может и есть в бсд версии, но в бсд версии нет интересующей нас функции asort() ) которые я упоминал надо собрать lang/gawk и соответсвенно пользовать gawk вместо awk.

Пример с гавк:
сразу скажу, я немного подмухлевал и изменил файлик который парсить надо, просто лень читать про выделение подстрок по символам( в нашем случае нас интересует символ ','). Если надо то дам код конкретно под ваш файлик, а пока пример:

Код: Выделить всё

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];}'
А вот намухлёванный фалик для парсинга log:

Код: Выделить всё

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

Непрочитанное сообщение zingel » 2008-07-22 21:34:39

Код: Выделить всё

lissyara 0 9
lissyara 1 8
lissyara 2 7
lissyara 3 5
lissyara2 4 1
lissyara2 4 5
это такой закос? =)
Z301171463546 - можно пожертвовать мне денег

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Распарсить вывод ps -aux

Непрочитанное сообщение opt1k » 2008-07-22 23:44:57

да, с мухлеванием увлёкся немного :cf:

увидел ошибку, поправил немного, теперь даёт правильный результат, 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]];}'

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Распарсить вывод ps -aux

Непрочитанное сообщение icb » 2008-07-23 8:58:14

такой сбор статистики ведь не охватит сколько ресурсов потребляет апач для каждого юзера? :( а это не мало
плюс скрипт пользователя может запускаться много раз, но быстро... он тоже не попадет в статистику?

Аватара пользователя
serge
майор
Сообщения: 2133
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Re: Распарсить вывод ps -aux

Непрочитанное сообщение serge » 2008-07-23 9:11:07

icb писал(а):такой сбор статистики ведь не охватит сколько ресурсов потребляет апач для каждого юзера? :( а это не мало
плюс скрипт пользователя может запускаться много раз, но быстро... он тоже не попадет в статистику?
+- конечно есть, но в целом примерно ситуация вырисовывается верная.
з.ы. что-то есть лучшее?

opt1k
лейтенант
Сообщения: 966
Зарегистрирован: 2007-12-05 9:45:18
Откуда: Mytischi

Re: Распарсить вывод ps -aux

Непрочитанное сообщение opt1k » 2008-07-23 9:13:26

конечно таким образом статистика будет иметь погрешность. Наверно,любая статистика не "безгрешна". Скорее всего топикстартера такой расклад вполне устраивет, сервера бывают разные и статистика бывает разной.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Распарсить вывод ps -aux

Непрочитанное сообщение Alex Keda » 2008-07-23 9:37:02

на всё остальное - есть sa
Убей их всех! Бог потом рассортирует...

Аватара пользователя
serge
майор
Сообщения: 2133
Зарегистрирован: 2006-07-30 15:34:14
Откуда: Саратов
Контактная информация:

Re: Распарсить вывод ps -aux

Непрочитанное сообщение serge » 2008-07-23 9:50:10

С sa толком не разобрался. Да и не совсем понятно как оттуда достать нужные мне параметры.

icb
лейтенант
Сообщения: 751
Зарегистрирован: 2008-07-15 16:11:11

Re: Распарсить вывод ps -aux

Непрочитанное сообщение icb » 2010-08-11 16:38:09

А как можно получить трафик юзера?