Upload FTP Engine multithread Движок для создания заданий на загрузку файлов/папко на фтп сервера, с последующей распаковкой, с поддержкой многопоточности. Движок состоит из трех рабочих скриптов (+ библиотеки и скрипты на PHP) и файла настройки. db_init.pl - скрипт создает пустую базу данных webiface.pl - web-интерфейс для управления заданиями. Поддерживает шаблоны, изменяя которые вы можете подогнать дизайн интерфейса под себя (хотя и весьма ограничено). upload.pl - скрипт для запуска с cron'a или с shell'a который обрабатывает задания из базы данных. ./upload/*.php - скрипты на PHP для распаковки архивов на удаленных фтп. данные скрипты загружаются вместе с каждым заданием, после чего скрипт upload.pl обращается к ним по url и передает в качестве параметров имена архивов для распаковки. После распаковки данные скрипты на php удаляют исходные архивы. Файл настройки: Поддерживает комментарии (#) setup.cgi Пример файла: ## каталог для загрузки upload_catalog=./upload # папка шаблонов tmpl_path=./templ # путь к каталогу cgi-bin cgi=/cgi-bin # url сайта url=http://kisua.ru # ip-адреса доступные в системе ip=192.168.0.1|10.1.8.1|88.20.156.23 Первый запуск: Для работы данных скриптов необходимо Первый запуск: Для успешного запуска убедитесь что у вас в системе установлены следующие модули Perl: (они доступны на cpan.org): DBI; DBD::SQLite; CGI; Net::FTP; LWP::Simple; Cwd; POSIX; Модуль HTML::Template входит в дистрибутив. После распаковки скриптов в cgi-директорию и изменения настроек в соответствии с вашей системой, необходимо обратиться по url к скрипту db_init.pl, или запустить его с shell'a. Данный скрипт создаст пустую базу данных формата SQLite (вам не потребуется MySQL) Затем вы можете обращаться по url к скрипту webiface.pl. Вызывая этот скрипт без параметров, вы производите добавление всех zip архивов находящиеся в вашем каталоге для загрузки (см. файл setup.cgi), в базу данных. (изменяя каталог загрузки не забудьте перенести в новый каталог php скрипты). Создание заданий для загрузки довольно тривиально и я думаю пояснений не требует (кнопка "Новая задача"). Загрузка папки. Для загрузки любой папки в системе на удаленный фтп, сперва необходимо ее добавить в список файлов. Для этого воспользуйтесь кнопкой "Добавить папку". Вам необходимо прописать относительный путь к вашей папке (относительно каталога для загрузки). Если скрипт обнаружит папку по указанному вами пути - он ее добавит (или выдаст сообщение об ошибке). После того как папка добавлена - вы можете использовать ее для заданий. Небольшой нюанс: в одном задании можно выбирать только одну папку! То есть для каждой папки необходимо отдельное задание! Загрузка заданий из текстового файла. Движок поддерживает добавление сразу много заданий из текстового файла. Формат файла должен быть таким: ftp1;login;pass;path;php_url;use_ip;fileid1|fileid2 ftp2;login;pass;path;php_url;use_ip;fileid1|fileid2 ftp3;login;pass;path;php_url;use_ip;fileid1 то есть поля разделяются знаком ; , (на каждое задание - новая строка) а для указания списка файлов для закачки необходимо разделять их через символ |. Так же для указания файла надо знать его id! (в файле не должно быть имен файлов - а должны быть их id). Можно также указывать id папки (только 1-й на задание) Мониторинг заданий. Удаление. Изменение. По кнопке "Смотреть логи", вы можете смотреть состояния выполнения заданий, изменять задания и удалять их. Небольшой нюанс: После того как задача отработала (правильно или с ошибками), данная задача перестает быть активной и скрипт upload.pl ее не принимает дял закачки. Поэтому для того чтобы скрипт upload.pl снова стал с ней работать - необходимо изменить данную задачу (исправить логин,пароль или еще что-то) и сохранить изменения. После этого данная задача помечается как новая и снова будет обрабатываться. ======================= P.Kuptsov (c) 2009 brosku@mail.ru http://perlmonks.org.ru