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/. Изначально это инструмент оценки размера для вашей файловой системы, но вы можете определить свой собственный расчет размера. Карта дерева поможет сгруппировать файлы, которые являются одной и той же папкой или деревом папок. Это несколько устойчиво к изменениям содержимого диска.

Другие вопросы по тегам