1dd7040f

ОПИСАНИЕ


Зачем нам нужен командный файл uutrans?

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

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

Что делает uutrans?

Uutrans предоставляет гибкий интерфейс, гарантирующий правильное копирование файловых иерархий. Этот командный файл знает, какие файлы передавать, в какую систему их направить и где их разместить в этой системе.

Когда вы запускаете uutrans, первым делом он запрашивает исходный каталог для пересылки файлов. Если вы не хотите продолжать, нажмите возврат каретки для выхода. Обратите внимание, что используется команда find, поэтому путь, который вы указываете в ответ на подсказку, является префиксом маршрутного имени для всех передаваемых файлов. Например, если вашим текущим каталогом является $HOME и вы хотите сделать его каталогом-источником, введите ".". Оператор find сгенерирует для файла /src/f.c маршрутное имя ./src/f.c. Если же вы введете, например, имя /usr/russ, то результирующим маршрутным именем будет /usr/russ/src/f.c. Таким образом, требуется небольшая предусмотрительность, чтобы избежать создания лишних уровней каталога в системе-адресате.

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

В запросе каталога-адресата умолчанием является PUBDIR. Если вам это не подходит, укажите точное маршрутное имя каталога, с которого вы хотите начать иерархию в системе-адресате. (Напомним также, что многие системы накладывают ограничения на то, куда вы можете копировать файлы с помощью uucp.) Способ, которым uutrans поддерживает правильное файловое дерево - это указание абсолютного маршрутного имени в системе-адресате, ниже которого будут располагаться все передаваемые файлы. Единственный способ сделать это - занести маршрутное имя в переменную и использовать ее в качестве путей как источника, так и адресата при вызове uucp.

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

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

Когда все файлы поставлены в очередь, вам нужно вручную подсоединиться к uucp с помощью команды 'c' или 'r' утилиты uust. Все каталоги в системе-адресате должны создаваться автоматически по мере пересылки файлов.

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

  1. Поставить файлы в очередь к uucp, используя инструментальное средство uutrans.
  2. Выйти из системы-источника.
  3. Войти в систему-адресат.
  4. Запустить uust и повторно подключиться к uucp.

Если вы придерживаетесь такой технологии постановки в очередь и передачи, то вы полностью контролируете, какие файлы куда направляются. Имеется побочный эффект, заключающийся в том, что права доступа к файлам в каталоге-адресате устанавливаются в соответствии с маской интерпретатора shell (shell umask) того процесса, который производит повторное подключение.

Необходимо отметить, что если у вас нет прав доступа на запись в вашей umask, то создается пересылочный каталог, но в него не могут быть помещены никакие файлы, что подрывает передачу файлов с помощью uucp. Для разрешения этой проблемы измените вашу umask на "000" (по умолчанию она равняется 777 для каталогов и 644 для обычных файлов).




Начало  Назад  Вперед