СВЯЗЬ ОС UNIX С ДРУГИМИ КОМПЬЮТЕРНЫМИ СТАНЦИЯМИ

Лекция №6

СВЯЗЬ ОС UNIX С ДРУГИМИ КОМПЬЮТЕРНЫМИ СТАНЦИЯМИ

Введение

Операционная система UNIX включает в себя ряд утилит, которое позволяет связываться с другими станциями, входящих в компьютерную сеть. Применяемые утилиты зависят от того, как локальный компьютер связан с другой станцией, какие задачи необходимо решать на другой станции, какая операционная система используется там.

Если другая станция расположена недалеко от вашего компьютера, например, в том же здании, они вероятно будут соединены простой линией связи. Если это станция, работающая под управлением UNIX, можете использовать команды Micnet, позволяющие передавать файлы между двумя станциями и выполнять команды на удаленной станции.

Если же станция, с которой вы хотите связаться, находится в другом здании или в другой части страны, ЭВМ связывается с ней телефонными линиями. Если эта станция работает под управлением UNIX, можно использовать UUCP команды.

Ни UUCP, ни Micnet не позволяют вам обеспечить интерактивный режим работы с удаленной сетью.

В изложении материала предполагается, что сеть типа UUCP или Micnet уже создана.

Применение Micnet

Micnet - сеть, состоящая из двух или более компьютеров, связанных линией связи. Линия связи представляет собой кабель с соединителями RS-232 на каждом конце.

Компьютеры в сети Micnet используют три команды для "общения" между собой. Это rcp, remote и mail. Команда rcp используется для передачи файлов между машинами в сети. Команда remote используется для выполнения команд ОС UNIX на удаленной Micnet машине. Команда mail используется для связи пользователей удаленных компьютеров. Каждая из этих команд описывается далее.

Передача файлов с помощью rcp

Команда rcp используется для копирования файлов между машинами, связанными сетью Micnet. Она имеет следующий синтаксис:

rсp [опции] [src_computer:] src_file [dest_computer:] dest_file

Аргументы обозначают следующее:

src_file - имя файла, который вы хотите скопировать

src_computer - имя компьютера, на котором src_file расположен

dest_file - имя файла на принимающем компьютере. Обычно совпадает с src_file

dest_computer - имя принимающего компьютера.

Для того, чтобы копировать при помощи rcp, надо получить разрешение на чтение исходного файла, чтение и "исполнение" каталога, содержащего исходный файл. Кроме того, необходимо иметь разрешение на запись полученного файла на принимающем компьютере.

Например, имеется три компьютера с именами machine1, machine2 и machine3, связанные в сеть Micnet. Предположим также, что необходимо послать копию файла с именем transfile из каталога /usr/markt на компьютере machine1 в каталог /tmp на machine3. Для того, чтобы сделать, это необходимо ввести команду:

rcp machine1:/usr/markt/transfile machine 3:/tmp/transfile

Если пользователь находится в каталоге, который содержит исходный файл, необходимо указать только имя файла. В этом случае не потребуется указывать имя машины и полный путь к файлу. Например:

rcp transfile machine3:/tmp/transfile

Кроме использования команды rcp для отправления копий файлов на удаленные компьютеры можно, использовать эту команду, для получения копии файлов от удаленных машин. Например, предположим, что machine3 - локальный компьютер и пользователь хочет получить копию файла /usr/markt/transfile, находящегося на machine1. Для этого необходимо выполнить следующую команду:

rcp machine1:/usr/markt/transfile /tmp/transfile

По этой команде файл /usr/markt/transfile с machine1 будет скопирован в каталог /tpm на machine3.

Файлы не передаются немедленно. Передача файлов может занимать несколько минут. Сначала они записываются в некий буферный каталог и пересылаются только в момент возобновления соответствующего фонового процесса. В случае с rcp этот процесс связан с выполнением программы daemon.mn.

Опции команды rcp

Два параметра (опции), определяющие режимы работы, используются в команде rcp. Это -m и –u[mashine:]user. Параметр -m позволяет отправлять почтовые сообщения об успешной или неудачной передаче файлов пользователю, который ввел команду rcp. Если необходимо выдать почтовое сообщение другому пользователю, используйте параметр –u[mashine:]user. В этом случае почтовое сообщение будет передано пользователю user на машине machine.

Следующая команда, введенная в момент нахождения в каталоге /user/markt на machine1 отправит копию /user/markt/transfile из machine1 в каталог /tmp на machine3. В том случае, если параметр -m указан, пользователь получит сообщение об успешном или неудачном выполнении команды:

rcp -m transfile machine3:/tmp/transfile

Выполнение команд с удаленного терминала

Команда remote позволяет передавать команды по линиям связи. Синтаксис команды следующий:

remote [опции] имя_станции команда [аргументы]

Если команда remote выполняет вывод данных, эти данные попадают в пользовательский системный "почтовый ящик". В противном случае команда remote выдаст сообщение только при неудачном выполнении.

Предположим, что пользователь работает на machine1 и хочет просмотреть состояние каталога /tmp на mashine2. Для этого необходимо ввести команду:

remote machine2 ls /tmp

Так как команда ls выводит данные, эти данные будут переданы пользователю. В данном случае выводимые данные включают листинг содержимого каталога /tmp на machine2.

Опции команды remote

Имеется два режима команды remote: -m и -f file. Режим -m позволяет получать сообщение об успешном или неуспешном выполнении команды. Предположим, что пользователь хочет удалить файл test из /tmp/markt на machine2. Для того, чтобы сделать это, необходимо ввести команду:

remote -m machine2 rm /tmp/markt/test

После того, как команда выполнится, пользователь получит сообщение об успешном или неуспешном ее завершении.

Параметр -f file позволяет указать файл на локальном компьютере, содержащий входные данные для команды, которая будет выполнена на удаленном компьютере. Например, вы хотите файл с именем chapter1, находящийся на вашем компьютере, вывести на печать на machine2. Для выполнения этого необходимо ввести:

remote -m -f chapter1 machine2 lp

Т.к. параметр -m указан, вы будете проинформированы об успешном или неуспешном выполнении команды.

Замечание.

Администратор системы может указать, какие команды позволяется выполнять дистанционно через линии связи на каждом компьютере. Команды, которые можно выполнять на расстоянии под управлением ОС UNIX, перечислены в файле /etc/default/micnet. Любая команда UNIX может выполняться на расстоянии, если в этом файле имеется фраза executeall.

Передача файлов с почтой

Команда mail может быть использована для передачи файлов между компьютерами в сети Micnet. Тем не менее, имеется несколько ограничений использования mail для этой цели:

- Вы должны передавать файл пользователю на удаленной системе, а не в каталог.

- Можно использовать команду mail для передачи небольших файлов. Большие файлы могут усекаться командой mail.

- Нельзя передавать двоичные файлы с помощью mail.

С другой стороны mail очень полезная команда для отправления небольших файлов нескольким пользователям одновременно.

Применение UUCP

UUCP - комплекс программ, которые обеспечивают сетевые возможности для систем UNIX. Команды UUCP работают по последовательным каналам связи, роль которых выполняют телефонные линии.

Программы UUCP позволяют передавать файлы между удаленными компьютерами и выполнять команды на них. Для компьютеров, связанных телефонными линиями, передачи UUCP могут распространяться на тысячи километров.

Передача файлов с uucp

Команды uucp и uuto могут быть использованы для передачи копий двоичных и текстовых файлов между удаленными станциями, связанными сетью UUCP. Каждая имеет преимущества и недостатки. Команда uucp дает возможность указывать, где будет размещен файл на удаленной системе. Однако синтаксис команды uucp довольно сложен. Команда uuto проще в использовании, но она имеет ограничения по размещению файла на удаленной системе. Кроме того, найти файл, посланный командой uuto, сложнее, чем файл, посланный командой uucp.

Команды uucp и uuto рассматривается далее.

Перед тем как начать копировать файлы, необходимо убедиться в том, что:

- локальная станция может выдавать в сеть информацию.

- локальная станция обеспечена средствами вызова удаленной станции.

- файлы, которые отправляются, разрешается читать всем прочим пользователям.

- каталог, содержащий файл, который необходимо отправить, разрешается читать и "исполнять" всем прочим пользователям.

- локальный компьютер имеет разрешение на запись в каталог, принадлежащий удаленной станции.

Некоторые станции, включенные в сеть UUCP, работают только на ввод информации, другие на вывод, третьи как на ввод, так и на вывод. Необходимо убедиться, что локальная сеть может передавать информацию. Если это не так, то компьютер может быть только получателем информации по сети UUCP, но не может передавать.

Необходимо быть уверены в том, что компьютер может общаться с той станцией, с которой необходимо связаться. Команда uuname дает эту информацию. Ввод команды uuname без параметров имеет своим результатом выдачу списка станций, с которыми локальный компьютер может общаться непосредственно. Ввод uuname с параметром -l позволяет отобразить имя локального компьютера.

Пользователь можете связаться со станцией, которая не указана в листинге, полученном в результате выполнения команды uuname. Это возможно, так как сети UUCP представляют собой связанные цепочки. Так, если пользователь знает, что станция, в которую необходимо передать файлы, связана со станцией, имеющей связь с вами, можно передать файлы на первую через вторую.

Для того, чтобы скопировать файл на удаленную станцию, работающую в сети UUCP, необходимо, чтобы к файлу и к каталогу, где находится файл, был открыт доступ на чтение всем прочим пользователям. Используя опцию команды -l для проверки разрешения на чтение из файла, а опцию команды -d - для проверки разрешения на чтение из каталога. Если соответствующих разрешений нет, необходимо выполнить следующие команды для их установки:

chmod 0+r имя_файла

chmod 0+rx имя_каталога

Необходимо убедиться в том, что локальный компьютер имеет разрешение на запись в каталог, принадлежащий удаленной станции, в которую необходимо передать файлы. Каждая удаленная станция, работающая в сети UUCP, имеет файл /usr/lib/uucp/Permissions. Этот файл содержит перечень каталогов станции, из которых локальный компьютер может читать файлы и в которые он может писать. Пересылка файла в каталог, принадлежащий удаленной станции, допускается только в том случае, если локальный компьютер имеет соответствующие права записи в этот каталог, что следует из содержимого файла /usr/lib/uucp/Permissions.

По умолчанию большинство станций, включенных в сеть UUCP, разрешают вызывающим их компьютерам вести запись в каталог /usr/spool/uucppublic.

Вызов uucp

Синтаксис команды uucp подобен синтаксису команды cp:

uucp [опции] src_computer!src_file dest_computer!dest_file

Аргументы означают следующее:

src_file - имя файла, который вы хотите скопировать

src_computer - имя компьютера, на котором расположен src_file

dest_file - имя копируемого файла на принимающем компьютере. Обычно имена файлов src_file и dest_file совпадают

dest_computer - имя компьютера, на котором будет находиться dest_file.

Существует несколько различных путей указания места на удаленной машине, куда будет помещен передаваемый файл. Наиболее простая спецификация имеет вид ~/dest_file. Это наиболее надежный путь, потому что спецификация ~/dest_file расширяется до /usr/spool/uucppublic/dest_file, поэтому можно быть уверенным, что передача будет успешной.

Например, для того чтобы отправить /usr/markt/transfile c machine1 в /usr/spool/uucppublic на machine2, необходимо ввести:

uucp /usr/markt/transfile machine2!~/transfile

Эта команда создает файл /usr/spool/uucppublic/transfile на machine2.

Если пользователь находится в каталоге /usr/markt, можно скопировать transfile на machine 2 следующей командой:

uucp transfile machine2!~/transfile

Команда uucp работает во многом аналогично команде rcp. Файлы не копируются, а передаются непосредственно. Копии размещаются в буферном каталоге и передаются при возобновлении соответствующего фонового процесса. Для UUCP-программ таким фоновым процессом является uucico. В зависимости от конфигурации вашей системы передача по UUCP может выполняться в течении минут или часов.

-----------------------------------------------------------------

Замечание.

Так как восклицательный знак имеет специальное значение в C-shell, если вы используете эту оболочку, любой восклицательный знак, появляющийся в команде uucp, следует отделить символом (\). Для пользователя C-shell ранее представленная команда примет вид:

uucp transfile machine2\!~/transfile

-----------------------------------------------------------------

Другая форма команды позволяет указывать полный путь копирования файла на удаленный компьютер. Она предназначена для пересылки файла в определенный каталог. Однако пользователь должны быть уверены в том, что компьютер имеет разрешение на запись в этот каталог, иначе пересылка не состоится.

Пусть, например, нужно отправить файл transfile из каталога /usr/markt, принадлежащего machine1, в каталог /usr/cindy, принадлежащий machine2. Для того, чтобы сделать это, введите команду:

uucp /usr/markt/transfile machine2!/usr/cindy/transfile

Обратите внимание на то, что команда uucp, подобно команде rcp, может быть использована также для получения файлов с удаленной станции. Используя предыдущий пример: если компьютер имеет имя machine2 и нужно отправить копию файла /usr/markt/transfile с mashine1 на machine 2, введите следующую команду:

uucp machine1!/usr/markt/transfile /usr/cindy/transfile

Указать место расположения информации на удаленном компьютере можно также используя аргумент ~user. Аргумент ~user расширяется до полного имени личного каталога пользователя user на удаленном компьютере. Например, если /usr/cindy - личный каталог пользователя с именем cindy на machine2, то находясь в каталоге /usr/markt, принадлежащем machine1, скопируйте файл /usr/markt/transfile в каталог /usr/cindy следующей командой:

uucp transfile machine2!~cindy/transfile

Принимающий компьютер расширяет аргумент ~cindy до полного имени личного каталога, создавая тем самым файл с именем /usr/cindy/transfile. Следует учесть, что компьютер должен иметь разрешение на запись в личный каталог пользователя, чтобы передача была выполнена успешно.

Непрямые передачи

В сети UUCP имеется возможность отправлять файлы на компьютеры, не определенные в списке uuname. Пусть, например, компьютер связан со станцией, работающей в сети UUCP под именем machine 2. Эта станция, в свою очередь, связана со станцией machine3. Вы можете отправить файл /tmp/transfile с локального компьютера в каталог /usr/spool/uucppublic на machine3. Сделать это можно, введя:

uucp /tmp/transfile machine2!machine3!~/transfile

Заметьте, что после каждого имени станции следует восклицательный знак. Указанием имен нескольких станций в команде uucp можно расширить диапазон систем, с которыми будет вестись обмен файлами. Это также распространяется на команды uuto и uux.

Опции uucp

Команда uucp может использовать несколько параметров (опций). Среди них выделяются параметры -m и -n.

Параметр -m обеспечивает посылку отправителю сообщения об удачной или неудачной передаче файлов. Параметр -n user обеспечивает извещение пользователя user, на машину которого передаются файлы.

С командой uucp используются и другие параметры.

Использование команды uustat для контроля состояний

Можно использовать команду uustat для того, чтобы контролировать состояния файлов, передаваемых с помощью uucp. Для контроля состояния всех работ с uucp вводится:

uustat

При этом увидите сообщение следующего вида:

1234 markt machine2 2/19-10:29 2/19-10:40 JOB IS QUEUED

Элементы этого сообщения, читаемые слева направо, означают:

1234 - Номер, присвоенный данной передаче командой uucp

markt - Имя пользователя, который запросившего передачу

machine2 - Имя станции получателя информации

2/19-10:29 - Дата и время помещения задания в выходной поток данных

2/19-10:40 - Дата и время выдачи команды uustat

Job Status - Это сообщение говорит о состоянии задания. Сообщение JOB IS QUEUED говорит о положении задания в выходной очереди в ожидании передачи. Если передача закончена, выдается сообщение COPY FINISHED, JOB DELETED.

Команда uustat может использоваться с параметрами. Информация о них приведена в описании команды uustat (С).

Передача файлов с uuto

Команда uuto позволяет копировать файлы в общий каталог работающей в сети UUCP станции, с которой ваша система связана. Таким каталогом для систем типа UNIX является каталог /usr/spool/uucppublic. Синтаксис команды uuto:

uuto [опции] source_file destination_computer!login

Аргумент login является именем пользователя, которому отправляются файлы.

Перед тем, как отправлять файл командой uuto, необходимо убедиться в том, что:

- к файлу открыт доступ для чтения всем прочим пользователям.

- к каталогу, содержащему файл, открыт доступ для чтения или исполнения для всех прочих пользователей.

Если разрешения отсутствуют, введите следующие команды для их установки:

chmod 0+r имя_файла

chmod 0+rx имя_каталога

Файлы, которые посылаются командой uuto, размещаются в каталоге:

/usr/spool/uucppublic/receive/login/source_computer

В этом примере login - имя пользователя, которому отправляются файлы, а source_computer - сетевое имя локальной системы.

Например, необходимо отправить копию файла transfile, принадлежащего каталогу /tmp, с локального компьютера пользователю с именем cindy на machine2. Для этого введите команду:

uuto /tmp/transfile machine2!cindy

Эта команда копирует файл transfile в следующий каталог:

usr/spool/uucppublic/receive/cindy/machine1

Когда передача файла завершается, абонент извещается почтовым сообщением о том, что файл прибыл. Если в команде uuto указан параметр -m, отправитель извещается почтовым сообщении об успешной или неуспешной передаче.

Так же как при выполнении команды uucp, в uuto файлы не передаются немедленно. Они включаются в буферный каталог и пересылаются при возобновлении фонового процесса uucico.

Выборка файлов командой uupick

Для выборки файла, отправленного командой uuto, используется команда uupick. Для ее выполнения вводится:

uupick

Программа uupick просматривает общий каталог в поисках всех посланных файлов. Если таковые обнаруживаются, uupick выдает сообщение:

from source_computer: file filename?

Здесь source_computer - имя отправившего компьютера, а filename - имя переданного файла. Для предыдущего примера, если команда uuto, передавшая файл пользователю cindy на machine2, выполнена успешно, появится следующий запрос uupick:

from machine 1: file transfile?

Существует несколько вариантов ответа на указанный запрос. Наиболее часто используемые из них: m[dir] и d. Ответ m[dir] заставляет uupick переписывать файл в каталог dir. После этого можно обращаться к файлу как к файлу, принадлежащему вашей системе. В вышеприведенном примере пользователь cindy может ввести следующий ответ на запрос uupick:

m $HOME

В этом случае transfile будет перемещен из общего каталога в личный. Если после m не указан ни один из каталогов, файл перемещается в текущий каталог получателя. Ответ d приводит к удалению файла из общего каталога. Для выхода из uupick введите q.

Выполнение команд с uux

Команда uux используется для выполнения команд на удаленных станциях и работы с файлами, полученными с удаленных станций. Из соображений безопасности список команд, доступных для выполнения на удаленном компьютере, очень ограничен. Этот список содержится в файле /usr/lib/uucp/Permissions. Если пользователь попытается выполнить команду, отсутствующую в файле, будет послано почтовое сообщение, указывающее, что команда не будет выполнена. Синтаксис команды uux:

uux [опции] командная_строка

Вид командной строки не отличается от любой другой командной строки UNIX, за исключением того, что командам и именам файлов должно предшествовать имя станции.

Рассмотрим пример выполнения команды в удаленной системе. Приведенная ниже команда вызывает посылку файла /tmp/printfile с machine2 на печатающее устройство machine2:

uux machine2!lp machine2!/tmp/printfile

В следующем примере показано, как в локальной системе выполнять команду над файлами, полученными из удаленных систем с помощью команды uux. Предположим, что локальный компьютер связан с machine2 и machine3. Предположим также, что требуется сравнить содержимое файла /tmp/chpt1 на machine 2 с содержимым файла /tmp/chpt1 на machine3. Для этого введите следующую команду:

uux "diff machine2!/tmp/chpt1 machine3!/tmp/chpt1 > diff.file"

Эта команда сравнивает содержимое файлов machine2 и machine3 и помещает результаты в файл diff.file текущего каталога на локальной машине. Так как в команде diff отсутствует имя станции, команда выполняется локально.

Заметьте, что в приведенном примере командная строка заключена в кавычки. Это объясняется тем, что в ней имеется символ переназначения (>). Вообще говоря, кавычки в команде uux имеют место в том случае, если она содержит специальные символы shell, такие как <, >, | и так далее.

СВЯЗЬ ОС UNIX С ДРУГИМИ КОМПЬЮТЕРНЫМИ СТАНЦИЯМИ