
Vladimir
14.07.2016
03:31:01
Делай сплит и пихай в массив. Минус - требует GNU awk
Но он умеет ассоциативный массивы и в целом можно накостылять ассоциативный массив в котором массивы
Но авк для этого не предназначен
За такие скрипты в приличном обществе повесят на ближайшем столбе в колпаке позора

Google

Alexander
14.07.2016
03:36:52
да любое общество всегда чем-то недовольно, не стоит особо париться на счёт чужого мнения)) мне просто хочется, чтобы оно работало с минимумом символов в коде и без зависимостей от чего-либо))
а можно какой-то пример?

Vladimir
14.07.2016
03:37:01
а хотя невнимательно прочитал. Если есть пример формата то могу наверное сделать

Alexander
14.07.2016
03:38:51
https://habrastorage.org/files/1d2/e3e/0a8/1d2e3e0a8c0648898463877c9974c845.png

Vladimir
14.07.2016
03:39:10
а можно текстом на пастбин? )

Alexander
14.07.2016
03:39:10
вот пример, это выводит команда stats (которая alias, код выше)

Vladimir
14.07.2016
03:39:30
А то мне совсем не хочется перепечатывать руками

Alexander
14.07.2016
03:40:05
ок
у меня сейчас не очень-то много проектов тут запущено, но, думаю, этого хватит https://dpaste.de/dQPB
текущая команда stats комбинирует docker ps и docker stats , привёл их тоже
ещё раз,
alias stats="docker stats \$(docker ps | awk '{if(NR>1) print \$NF}')"
на выходе ожидаю увидеть строчки emotionfolio expo modest_feynman istr tour byvshie concord sashaboldyreva
там могут быть сложности с переводом B -> kB -> MB -> GB поэтому можно было бы просто выкинуть их, оставить только CPU % и MEM %
(если перевод сложный)

Google

Vladimir
14.07.2016
04:05:51
stats | awk -f file.awk
где file.awk - https://bpaste.net/show/660ced7bf760 - нужными вещами сам по аналогии допиши.
и понимаешь, да, почему awk тут не очень?

Alexander
14.07.2016
04:06:36
спасибо! если честно, то не очень)

Vladimir
14.07.2016
04:06:55
ну просто на всяких перлах-питонах есть либы для упрощения ряда вещей, например

Alexander
14.07.2016
04:08:32
ну, можно, конечно, но тогда этот питон будет в контейнере
по аналогии с
alias htop="docker run --rm -it --pid host jess/htop"
хмм, а почему эта команда может не работать?
docker stats $(docker ps | awk '{if(NR>1) print $NF}') | awk -f file.awk
то есть она работает, но ничего не показывает

Vladimir
14.07.2016
04:13:11
gawk

Alexander
14.07.2016
04:14:02
заменить awk на gawk? то же самое
может быть, дело в том, что команда автоматически обновляется всегда?
точнее, не команда, а то, что она выводит

Vladimir
14.07.2016
04:14:54
скрипт должен быть в файле (ну в моем варианте)
можешь в 1 строку преобразовать сам если что

Alexander
14.07.2016
04:15:02
сам скрипт в файле, да

Vladimir
14.07.2016
04:15:03
и файл соответственно в pwd

Alexander
14.07.2016
04:15:21
да
я в /root/ , тут этот файл, я его вижу в текущей директории, пишу
docker stats $(docker ps | awk '{if(NR>1) print $NF}') | gawk -f file.awk

Google

Alexander
14.07.2016
04:16:47
он как бы что-то делает, но на экране пусто
кажется, я понял, всё работает, просто он не успевает обновлять данные
с —no-stream работает ок

Vladimir
14.07.2016
04:19:42
да, со стримом работать не будет
https://bpaste.net/show/3f55e8d712f2 слегка улучшенный вариант
дальше сам

Alexander
14.07.2016
04:20:26
спасибо!
понял, как дальше сделать, могу ещё спросить, а почему он отступы немного ломает?
https://habrastorage.org/files/472/5af/54d/4725af54ddca4190a6aee248f3d33379.png
но прям круто стало, мне оч нравится)) думаю, этот скрипт не только мне поможет

Vladimir
14.07.2016
04:34:59
потому что логику по деланию нормальных отступов сложнее реализовать. библиотечных функций нету )

ptchol
14.07.2016
04:34:59
чот ни очень как то ДО

Vladimir
14.07.2016
04:36:05
cat example_1 | gawk -f ./script.awk | column -t

Alexander
14.07.2016
04:36:05
если сейчас как-нибудь пофиксить отступы, то вот как раз что надо))

Vladimir
14.07.2016
04:36:14
| column -t -s $'\t'
даже так

Alexander
14.07.2016
04:37:17
во, отлично)
правда баг вижу (после / суммировать не надо), но это вообще не критично
https://habrastorage.org/files/10c/aed/593/10caed593ae6408287ffbe8d0dad39e4.png

Google

Alexander
14.07.2016
04:41:31
Владимир, спасибо, что прокачали мою та.. мой docker stats ?

Vladimir
14.07.2016
04:42:07
https://bpaste.net/show/2c0450c164ad
да пожалуйста
https://bpaste.net/show/ac1cbbe8a899 даже так, вот тут совсем формат такой (с виду)

Alexander
14.07.2016
04:46:08
последний вариант выдал gawk: file1.awk:59: предупреждение: последовательность \%' считается %'

Vladimir
14.07.2016
04:46:56
убери экранирование на 59 и 60 строках у процента
%s\% на %s%

Alexander
14.07.2016
04:49:01
во

Admin
ERROR: S client not available

Alexander
14.07.2016
04:49:03
https://habrastorage.org/files/348/ffe/447/348ffe44743946d1a78288e0665e6601.png

Vladimir
14.07.2016
04:49:36
при оооочень большом желании из скрипта делается однострочник, но так делать не надо - сейчас он хотя бы читаемый

Alexander
14.07.2016
04:49:38
гы, он и PID'ы просуммировал
да, согласен, так лучше
запускаю вот так:
alias stats="docker stats --no-stream \$(docker ps | awk '{if(NR>1) print \$NF}') | gawk -f file1.awk | column -t -s \$'\t'"
в ~/.bashrc
теперь ещё 1 вопрос - а как бы сделать так, чтобы он автоматически запускал это каждые Х секунд?
ну, раз в 10 секунд, скажем
пока я не нажму Ctrl+C

Vladimir
14.07.2016
04:52:21
while :; do stats; sleep 10; done

Alexander
14.07.2016
04:53:10
о, круто

ptchol
14.07.2016
04:55:03
У свифта знаете какая проблема ? )

Google

Alexander
14.07.2016
04:55:04
clear; я ещё подставил
какая?

ptchol
14.07.2016
04:56:07
питон медленный )
а если серьезно, дикий оверхед на мелких объекта на директориях
на 5.9м объектов 1.6м директорий

Alexander
14.07.2016
04:58:37
я ещё до этих систем немного недорос)) но интересно

Dmitry
14.07.2016
05:32:37
фс сойдет с ума

Alexander
14.07.2016
05:37:54
@Civiloid а как правильно заменить строчку
result[project]["pids"] += $19
чтобы вместо суммы там был ', '.join(list)

Vladimir
14.07.2016
05:38:53
https://www.gnu.org/software/gawk/manual/html_node/Concatenation.html

Alexander
14.07.2016
05:39:27
я вот так написал
result[project]["pids"] += $19 ", "
ок, поэкспериментирую ещё

Roman
14.07.2016
06:26:13
А кто-нибудь использует ceph? Есть практический опыт работы с ним?

Dmitry
14.07.2016
06:35:03

87776
14.07.2016
06:35:53
это православный программист?
как его
мицгол, во

Peter
14.07.2016
06:36:49

87776
14.07.2016
06:36:54
а
не знал