Как стать автором
Обновить

Комментарии 22

Вы не поверите, но python тоже не везде стоит :(

Строго говоря, всё не везде стоит, так что имелось в виду, видимо, «Lua стоит более не везде, чем Python»

Тогда там и lsof может не быть :D


Пайпы в помощь:


ssh my-little-server '[sudo] lsof -n -F' | python lsofgraph.py | ...

sudo "в лоб" не везде взлетит, конечно. В целом, сам граф можно построить где угодно если есть возможность передать вывод lsof с сервера куда-нибудь ещё

Извините, но там и линукса может не быть…
И даже при том, оно может работать, если, конечно, под линуксом вы не подразумевали в том числе всякие BSD и некоторые другие системы

Мне в качестве конечного формата больше svg нравится (dot -T svg > a.svg), его можно в браузере открыть, помасштабировать и, самое главное, текст копипастить.

Не говоря уж о том, что для таких графиков -Tsvg даже в несжатом виде в разы меньше чем jpg или png результат. Вообще сам зашёл оставить комментарий про svg, но вы опередили.
добавил в статью
Не могу не отметить pstree.
Я тоже как-то сразу об этом подумал, а чтобы сделать из этого графику — направить выдачу как стандартный ввод для convert (ImageMagick).
Если нужно только отследить связи parent->child, то хватит и ps с флагом f (-H). В варианте автора еще показывается, через что общаются между собой процессы, если общаются.
Попробовал оригинал. Хотел фильтровать по PID (lsof -p ) — не работает. Здесь такой же недостаток? Себе сделал алиас сразу на feh (а не в файл) — слишком много процессов.
lsof -p жестко фильтрует по PID, кроме указанного PID в выводе нет других процессов, соответсвенно на выходе только один процесс и рисуется
Я не понял, как это касается зависимостей — файлов, сокетов и прочее. Они-то как раз в выводе есть, но в итоге «на картинке» только один прямоугольник с самим процессом и никаких связей. Что я упускаю?
Скрипт строит зависимости между «корневыми» PID, которые есть в выводе, по сути все эти зависимости являются ветками дерева, которые начинаются с PID, по этим веткам и рисуются связи между процессами, если процесс указан один, то и дерево одно получается и ему не за кого зацепиться своими ветками.
НЛО прилетело и опубликовало эту надпись здесь
может кто на shell перепишет))
НЛО прилетело и опубликовало эту надпись здесь
… Причем принт функцией второй питон тоже съест…
он съест, но не как функцией, а аргументы примет как кортеж (tuple).
ps: 2to3 помогает преобразовать 2й питон в 3й
А нефиг неформатированные значения выводить принтом.
А с форматом — разницы нет.
python2:
>>> print("%d:%d"%(1,2))
1:2
python3:
>>> print("%d:%d"%(1,2))
1:2
Разве сейчас не модно просить все предоставить в виде реализации на rust? :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации