Занятие на ближайшие недели?
Есть web-based система поиска видео в локальной сети, написанная правда не мной, но уже изрядно мной правленная. Многие люди, в том числе и я, уже не представляют себе комфортной жизни без неё в локальной сети. Все ниженаписанное просто помогло мне собрать мысли в кучу, что бы занятся её доработкой и тотальным ремастерингом. мб из неё получится в будущем что нибудь коммерческое. =) Локалки то растут как на дрожжах. В данный момент система функционирует в двух больших сетях (>1000 машин) и по посещаемости доказывает свою нужность.
Как она выглядит с точки зрения пользователя? Это набор страничек (пока 2 штуки — видео и аудио) На страничке с видео вывешены списки нового видео найденного в сети за последние 3 дня. И есть строка поиска по всей накопленной базе. Поиск может осуществляться по
1) IP — выводит листинг видеофайлов на данной машине
2) Имени файла — тут все понятно
3) Размеру — Так как видео файлы всегда являются достаточно большими а размер состоит из 9 цифр, то зачастую размер фалйа однозначно определяет фильм… очень удобно для поиска зеркал для закачки.
С точки зрения хостера это выглядит не очень удобно …. Изначально было 2 скрипта на Perl и программа на C, написанная под Unix. Адаптировав Perl под себя и забив на Сишную программу (она занималась проверкой 21 порта и менеджментом ИП, то есть определяла проверяли ли мы сегодня данную машину или ещё нет). Я смог запустить данную систему под Windows.
Итак первый перловский файл: get-new.pl принимает в качестве параметра IP и получает с машины полный листинг (если в специальном файле dirs не указаны папки для этого ИП), затем выдерает и записывает в отдельном файлике информацию по видео файлам и смотрит последний файлик который был получен, переименовывает его в old. И если в новом листинге появилось что то новое из видео дописывает этот ФТП в список new.
Второй файлик make-html.pl просматривает последовательно 3 файлика new.
Несколько дней назад чувствую необходимость в получении полной статистики по всему когда либо найденному я написал простенькую программу на Visual C которая генерит html следующего содержания:
Последовательно все когда либо найденные ФТП с видео файлами либо аудио файлами. По каждому из ФТП дается такая информация: Дата последнего опроса, общий размер видео файлов, общий размер аудио файлов, количество видео и аудио фалов. На каждом из ФТП поставлены гиперлинки на полный листинг (используется поиск). В конце файла содержится информация об общем количестве найденных ФТП с видео в сети, общим размером файлов обоих типов.
На момент написания (Общее число ФТП = 224, размер видео ~5,5Tb аудио ~1,5Tb), посещаемость стартовой странички примерно 100 хитов в день (не считая поиска).
Что в этом всем не удобно:
1) Листинги хранятся в отдельных маленьких файлах и их очень много (для большой сети в 5000 компов).
2) Поиск особенно audio сильно тормозит компьютер и выполняется довольно долго. Этот и предыдущий недостатки устраняются переходом на использование какой ни будь БД, например MySQL.
3) Нет единой среды которая бы опрашивала машины. Изначально я решил эту проблему используя tcl скрипты(потомучто хорошо их знаю). Первая версия с помощью exec запускала perl последовательно опрашивая каждую машину из диапазона ИП. Теперь когда машин стало больше 5000…. суток не хватает что бы опросить все. Единственный выход одновременно опрашивать несколько машин. Это я решил ещё более изощренным способом …. создал на каждый диапазон адресов ИП, свой скрипт TCL. (Сейчас порядка 25-30 штук). И просто ручками одновременно их запускаю. Когда в памяти висит 30 процессов перла и 30 процессов TCL машина тормозит немеряно. =) Этот недостаток надо устранять переходом на язык низкого уровня типа Сишника.
Вообщем необходимо это все собрать под единую программную оболочку причем желательно что бы она могла работать просто так на веб сервере (то есть использовать Перл либо ПХП для всех частей проекта и максимально автоматизировать процесс работы). И переделать её с целью использовать mySQL в качестве хранения информации. Также добавить помимо audio и video поиск по играм и виртуальным СД.
Пример как это выглядит можно посмотреть: http://video.dinfo.ru
Автор первоначальной версии и идеи данной системы: mz