РАБОТА С ФАЙЛОВЫМИ СЕРВЕРАМИ АРХИВОВ СЕТИ RELCOM
Для получения информации из выбранного архива необходимо
отправить соответствующему серверу письмо с командами. Письмо
представляет собой обычный текстовый файл с несколькими
текстовыми строками (командами).
Работа с программой Mail Server
В настоящее время в сети RELCOM широко используются
различные версии программы-сервера Mail Server, разработанной
Сергеем Вакуленко. Из 26 архивов сети RELCOM 15 используют эту
программу (табл. 2).
Для серверов, на которых установлена программа Mail Server
(независимо от версии), необходимо учитывать следующее:
- Содержимое поля заголовка письма "Subject:" игнорируется;
- Команды можно набирать как прописными, так и строчными
буквами. В параметрах команд прописные и строчные буквы
различаются. Имена файлов и каталогов следует задавать с учетом
регистра, точно как указано в справочных материалах (например,
есть файл index, но есть и другой файл Index, однако может и не
быть файла INDEX);
- Не допускается использование абсолютных (начинающихся с
'/') названий каталогов и файлов, а также обозначения
родительского каталога ('..');
- Допустимо использование метасимволов интерпретатора SHELL
среды UNIX ('*', '?', '[' и т.д.) в именах файлов;
- Если сервер встречает неверную команду или параметры, он
прерывает обработку запроса и возвращает протокол работы с
указанием ошибки.
Наиболее мощной по функциональным возможностям является
программа Mail Server версия 1.3, установленная на сегодня только
в Киархиве. Наборы команд различных версий программы-сервера
приведены в табл. 3.
Таблица 2
Архивы, использующие программу-сервер Mail Server
Архивы Версия сервера Сетевой адрес администратора архива
ALTSERV 1.1.1 root@altpi.altai.su
CHCI 1.1 vlad@chci.chuvashia.su
alexis@chci.chuvashia.su
CNTC 1.1.2 root@cntc.dubna.su
CS/MONOLIT 1.1 arcman@archive.monolit.kiev.ua
EM-ISRIR 1.2 arcman@em-isrir.msk.su
INFORS 1.2.1 arcman@inforis.nnov.su
IZHMAR 1.2 ae@izhmark.udmurtia.su
КИАРХИВ 1.3 arcman@kiae.su
KCKOVR 1.2 romb@kc.vladimir.su
RIAPH 1.2 blib@riaph.irkutsk.su
SENSOR 1.1 dnb@orgland.zgrad.su
STACK 1.2 ms-adm@push.stack.serpukhov.su
TELSIB 1.2 arcman@data.telsib.nsk.su
TEREMP 1.2 din@nevod.perm.su
TURBO 1.1 roman@fagot.turbo.nsk.su
dimas@fagot.turbo.nsk.su
bob@fagot.turbo.nsk.su
Таблица 3
Наборы команд различных версий программы-сервера Mail Server
Версии программы-сервера
Mail Server Назначение команды
1.3 1.2 1.1.*
help help help Выслать краткое описание
команд сервера
quit quit quit Завершить ввод команд
pwd pwd pwd Выдать имя текущего каталога
dir dir dir Выдать список файлов и подка-
талогов текущего каталога
index index То же самое, что и dir, но спи-
сок выдается с комментариями
ls ls ls Аналог команды dir
get get get Выслать файл
extract extract extract Распаковка архива
cd cd cd Переход в каталог
read Включение текста файла в присы-
лаемый протокол работы сервера
find Поиск файлов по образцу
list list list Выдать список содержимого
архивного файла
info info Выдать справочную информацию
о файле
archiver archiver archiverВыбор программы-архиватора
encoder encoder encoder Выбор кодировщика
split split split Выбор режима кодирования
size size size Задание максимального размера
пересылаемой части
limit limit Задание ограничения общего
объема пересылки по команде get
debug Включить трассировку выполне-
ния команды get
Рассмотрим подробнее команды программы-сервера Mail Server:
help
Выслать краткое описание и перечень команд почтового
сервера. Все последующие команды будут игнорироваться. Если в
письме имеются другие команды, команду help нужно ставить
последней.
quit
Завершить ввод команд, все последующие строки письма будут
игнорироваться. Если в письме уже есть команда help, то команда
quit не требуется.
pwd
Выслать имя текущего каталога.
dir или ls
Выслать перечень файлов и подкаталогов текущего каталога без
комментариев . Дополнительные варианты использования команды dir
и ls:
dir <имя каталога> - Выслать список файлов и подкаталогов
(ls <имя каталога>) заданного каталога (заданных каталогов)
без комментариев;
dir -d - Выслать список новых файлов за последние d дней;
(ls -d)
dir -r - Выслать перечень файлов и рекурсивный список
(ls-r) подкаталогов текущего и всех дочерних каталогов.
cd <имя каталога>
Перейти в заданный каталог. Задание команды cd без параметра
означает переход в корневой каталог. Переход из одного каталога в
другой, причем если последний не является подкаталогом первого,
лучше всего осуществлять в два шага. На первом шаге перейти в
корневой каталог, а после этого - в нужный.
get <имя файла(ов)>
Выслать файл или группу файлов. Данная команда высылает
только файлы, а не каталог. Для задания группы файлов необходимо
использовать метасимволы системы UNIX.
Получив команду get, сервер обрабатывает файл следующим
образом. Файл перекодируется в 7-битовое текстовое представление
(чтобы информация не искажалась при прохождении промежуточных
узлов, которые не всегда "пропускают" 8-битовые символы) одним из
возможных способов (по умолчанию - UUENCODE). Если файл слишком
большой, он разделяется на несколько частей, которые высылаются в
виде отдельных писем в адрес абонента. Если при пересылке
потерялась одна (или несколько) из частей файла, можно повторно
заказать только потерянные части:
get -l <имя файла> - Выслать части заданного файла, где l -
список номеров нужных частей. Список
частей может, например, иметь следующий
вид "-5,6,9-11". Необходимо помнить,
что при повторном заказе недостающих
частей должны быть указаны команды
archiver, encoder, size, split с теми
же параметрами как и при заказе
исходного файла.
list <имя файла-архива>
Выдать список содержимого архивного файла (файлов).
Допустимы следующие типы архивных файлов: tar.Z, tar.F, tar,
cpio.Z, cpio.F, cpio, ar.Z, ar.F, ar, zoo, zip, lzh, arj.
extract <имя файла-архива> <имя файла(ов)>
Извлечь из файла-архива нужный файл или группу файлов и
выслать их абоненту. Указанный файл или группа файлов извлекается
из архива, упаковываeтся, кодируeтся и отсылаeтся в соответствии
с параметрами команд archiver, encoder, split и size. Возможные
следующие варианты использования команды extract:
extract -l <имя файла-архива> <имя файла> - Извлечь
файла-архива заданные в списке l части
нужного файла и выслать их (см. команду
get).
extract <имя файла-архива> - Переархивировать файл-архив
программой-архиватором, заданной
командой archiver, и выслать его
абоненту.
archiver <имя программы-архиватора>
Выбрать программу-архиватор. Допустимы следующие названия:
compress - tar.Z, freeze - tar.F, lharc - lzh, zoo - zoo, zip -
zip, arj - arj, none - высылать файлы в том виде, в каком они
хранятся (принято по умолчанию).
encoder <имя программы-кодировщика>
split <режим разбиения>
Выбрать режим разбиения файлов. По умолчанию сервер сначала
перекодирует файл целиком в 7-битовое текстовое представление,
затем "режет" текст на части. Такой способ иногда вызывает
некоторые трудности при сборке файла из частей. Можно изменить
алгоритм на обратный: сначала поделить файл на части, затем
каждую из них по отдельности перекодировать в текст. Это делается
с помощью следующих параметров:
text - разбиение на части после кодирования (принято по
умолчанию);
binary - разбиение на части двоичного файла с последующим
кодированием каждой части отдельно.
size k
Установить максимальный размер пересылаемой части файла,
равный k Кбайт (по умолчанию - 30 Кбайт). При задании команды
size без параметра высылается текущее значение максимального
размера пересылаемой части файла.
Все выше перечисленные команды выполняются всеми версиями
программы Mail Server. По сравнению с программами версии 1.1.*
старшие версии (1.2.* и 1.3) поддерживают ряд новых команд:
index <имя каталога>
Выслать список файлов и подкаталогов заданного каталога
(заданных каталогов) с краткими описаниями. Если параметр не
указан, высылается информация о текущем каталоге.
index -d - Выслать список новых файлов за последние d дней;
index -r - Выслать перечень файлов и рекурсивный список
подкаталогов текущего и всех дочерних каталогов.
limit Q
Установить ограничение в Q Кбайт на общий объем пересылаемой
по командам get информации за данный сеанс. Передача файла, на
котором происходит нарушение данного ограничения, будет доведена
до конца. При задании команды limit без параметра высылается
текущее значение ограничения на общий объем пересылки (в
Кбайтах).
info <имя файла(ов)>
Выдать справочную информацию о файле или группе файлов.
Наконец, самая мощная версия программы Mail Server (версия
1.3) обладает возможностями, какими не обладают остальные версии.
Эти новые возможности реализуются следующими командами:
find <образец>
Выслать информацию о всех файлах, в названиях которых или в
комментариях к которым встречается заданный образец (или
образцы). Поиск ведется без различия строчных и прописных букв
(включая русские). Образец трактуется как регулярное выражение,
не содержащее символов "пробел". В частности, используются
следующие метасимволы:
. - один произвольный символ;
* - предшествующий символ, подставленный ноль и более раз;
\ - последующий метасимвол используется в его собственном значении.
Следовательно, комбинация указанных символов имеет следующее значение:
.* - ноль и более любых символов;
\. - символ ".";
\* - символ "*".
Например, команда
find uucode - выдаст информацию о файлах uucode.zip,
myuucode.exe, UuCode.ZiP,UUcodesomething.myownext..., а также о файлах, в комментариях к которым встретится подстрока "Uucode", "UUCode", "UUcoDe" и т.п. (если, конечно, такие файлы существуют);
find uucode\.zip - выдаст информацию о файлах uucode.zip,
UuCode.ZiP, и т.п.;
find uu.*zip - выдаст информацию о файлах uucode.zip,
UuCode.ZiP, uucode30.zip, uucode16.zip,
UUsomething.myownzip... , а также о
файлах, в комментариях к которым
встретятся фрагменты типа "UuEncode
может использоваться для кодирования
файлов созданных программой PKZIP".
read <имя файла(ов)>
read -n <имя файла> - Выдать только начальные n строк
указанного файла.
debug on
Включить трассировку выполнения команд get.