Heatmap для отображения файловой системы на сервере?
Мне было поручено создать простое веб-приложение на Python для графического представления "различий" между различными серверами с точки зрения содержания различных ключевых конфигурационных файлов в файловой системе.
1. Тепловая карта высокого уровня
Для общего обзора я думал о создании тепловой карты каждой системы (например, http://www.jjguy.com/heatmap/). Каждая система сравнивается с золотым исходным изображением (оригиналом), а затем мы используем цвета, чтобы представить степень отличия от этого изображения.
Файловая система сопоставлена с осью xy, поэтому одинаковые координаты на тепловой карте для каждой системы представляют одинаковые файлы.
Мой первый вопрос здесь: есть ли у вас какой-нибудь совет относительно хорошего алгоритма для сопоставления файловой системы с координатами xy? Имейте в виду, что хотя каждый сервер должен иметь более или менее одинаковую иерархию файловой системы, это не обязательно может быть правдой, и мне все еще нужно найти способ представления отсутствующих файлов / каталогов или, возможно, добавленных файлов / каталогов. Я не уверен, возможно ли это, наряду с первым требованием сопоставления эквивалентных файлов / каталогов с соответствующими (или, по крайней мере, похожими) точками xy на каждой карте системы. Любые новые подходы / алгоритмы здесь?
Затем мне нужен способ количественной оценки степени изменений между каждым файлом (количество строк?), А затем передать это на карту тепла. Имейте в виду, что мне нужно различать, скажем, один файл с 10 измененными строками и 10 файлами с 1 измененной строкой в каждом, так как оба имеют разные последствия.
2. Развернуть, чтобы показать различия между файлами
Я надеюсь также предложить возможность в веб-приложении детализировать отдельные файлы / каталоги и видеть изменения между ними.
Я использовал комбинацию Kdiff3 и Meld для визуальных изменений кода, и меня очень впечатлило то, как меняется отображение Meld.
http://meld.sourceforge.net/meld_file1.png
Я не мог найти ни одной автономной веб-библиотеки, которая бы обеспечивала механизм визуального сравнения самостоятельно. Самым близким, что я нашел, является jsdifflib ( http://snowtide.com/jsdifflib), но он, кажется, не соответствует функциональности (или, я полагаю, эстетике) чего-то вроде Meld. Любой совет здесь?
(Ревизионист на самом деле выглядит круто - http://benfry.com/revisionist/ - но я не могу найти какой-либо общедоступный код для этого).
Ура, Виктор
1 ответ
Что касается отображения файловой системы, взгляните на WindirStat http://windirstat.info/. Изначально это инструмент оценки размера для вашей файловой системы, но вы можете определить свой собственный расчет размера. Карта дерева поможет сгруппировать файлы, которые являются одной и той же папкой или деревом папок. Это несколько устойчиво к изменениям содержимого диска.