UUX(1C) UUX(1C)
НАЗВАНИЕ
uux - выполнение команд на удаленных системах
СИНТАКСИС
uux [-] [-a имя_пользователя][-b][-c][-C][-g приоритет][-j][-n][-p]
[-r] [-s файл] [-x уровень_отладки] [-z] командная_цепочка
ОПИСАНИЕ
Команда uux собирает ноль или более файлов с различных
систем, выполняет команду на указанной системе и затем
направляет стандартный вывод в файл на указанной систе-
ме. Отметим, что в целях безопасности во многих версиях
наложены ограничения на список команд, выполняемых uux.
Многие разрешают производить посредством uux только по-
лучение почты [см. mail(1)]. (Права на выполнение ко-
манд на удаленных системах указываются в файле
/usr/lib/uucp/Permissions).
Командная_цепочка состоит из одного или более аргумен-
тов и похожа на командную строку shell'а, но имена ко-
манд и файлов могут иметь префикс [имя_системы]!. Если
имя_системы не указано, подразумевается локальная сис-
тема.
Имя файла может быть:
1. Полным маршрутным именем.
2. Маршрутным именем с приставкой ~имя_пользователя,
которая заменяется именем исходного каталога поль-
зователя в соответствующей системе. Если такого
пользователя нет, подставится каталог /usr/spool/
uucppublic.
3. Маршрутным именем с приставкой ~/получатель, кото-
рая заменяется на /usr/spool/uucppublic/получа-
тель. Получатель трактуется как имя обычного фай-
ла, если только не копируется несколько файлов или
получатель ранее уже не был создан как каталог.
Если обязательно нужно выполнять копирование в ка-
талог, после получателя следует поставить /. Так,
если в качестве целевого_файла указать ~/dir/, бу-
дет создан каталог /usr/spool/uucppublic/dir (если
его еще не было), в который и скопируются исходные
файлы.
Все остальное считается маршрутным именем относительно
текущего каталога.
Например, команда
uux "!diff sys5!/usr/dan/f1 sys6!/dan/f2 > !~/dan/f3"
возьмет файл f1 с машины sys5, файл f2 с машины sys6,
сравнит их посредством утилиты diff(1) и поместит ре-
зультат в файл /usr/spool/uucppublic/f3 на локальной
машине.
Любой символ, имеющий для shell'а специальное значение,
должен быть экранирован либо путем заключения команд-
ной_цепочки в кавычки, как это сделано в примере, либо
путем экранирования каждого символа отдельно.
Команда uux пытается собрать все нужные файлы на той
машине, где будет выполняться команда. Выходные файлы
следует заключать в скобки. Например, команда
uux a!cut -c1-72 b!/usr/file \(c!/usr/file\)
перешлет файл /usr/file с машины b на a, выполнит на
машине a команду cut(1) и отправит результат на машину
c.
Если выполняемая команда запрещена в указанной системе,
то uux сообщит об этом. Сообщение придет по почте с
удаленной машины. Отменить это сообщение поможет опция
-n.
Команда uux интерпретирует следующие опции:
- Сделать стандартный ввод uux стандартным вводом
для командной_цепочки.
-a имя_пользователя
Использовать заданное имя_пользователя вместо
идентификатора пользователя, запустившего команду
uux. Все сообщения будут посланы пользователю.
-b Вернуться, что бы ни поступило со стандартного
ввода для uux, если код завершения ненулевой.
-c При пересылке локального файла на удаленную систе-
му не копировать его в буферный каталог (режим по
умолчанию).
-C При пересылке локального файла на удаленную систе-
му копировать его в буферный каталог.
-g приоритет
Приоритет - один символ (буква или цифра). Чем
меньше ASCII-код символа, тем больший приоритет в
пределах сеанса связи будет иметь задание. По
умолчанию приоритет равен N.
-j Выдать идентификатор задания в виде цепочки симво-
лов на стандартный вывод. Этот идентификатор можно
использовать совместно с командой uustat(1C) для
получения состояния или для терминации задания.
-n Не извещать пользователя, если команду не удалось
выполнить.
-p То же, что и -.
-r Поставить задание в очередь, но не начинать про-
цесс выполнения.
-s файл
Поместить статус задания в файл. Заметим, что файл
должен задаваться полным маршрутным именем.
-x уровень_отладки
Выводить на стандартный вывод отладочную информа-
цию. Уровень_отладки - это число от 0 до 9, причем
большему числу соответствует более детальная ин-
формация.
-z Послать пользователю уведомление об успешном за-
вершении задания.
ФАЙЛЫ
/usr/spool/uucp/* Служебные каталоги.
/usr/lib/uucp/Permissions Права на выполнение команд
на удаленных системах.
/usr/lib/uucp/* Другие файлы программ и дан-
ных.
СМ. ТАКЖЕ
cu(1), mail(1), uucp(1C), uustat(1C).
ПРЕДОСТЕРЕЖЕНИЯ
Только первая команда конвейера может иметь префикс
имя_системы!. Все остальные команды будут выполняться в
этой же системе.
Использование метасимвола shell'а * может привести к
неожиданным последствиям. Символы shell'а << и >> не
поддерживаются.
Выполнение команды на удаленной системе производится
только в специальном каталоге, известном uucp. Все тре-
буемые файлы будут помещены в этот каталог, если только
они еще не находятся на этой машине. Таким образом,
простое имя файла (без указания маршрута поиска или ма-
шины) должно быть уникальным в рамках данного запроса
uux. Следующая команда НЕ БУДЕТ РАБОТАТЬ:
uux "a!diff b!/usr/dan/xyz c!/usr/dan/xyz > !xyz.diff"
но команда
uux "a!diff a!/usr/dan/xyz c!/usr/dan/xyz > !xyz.diff"
проработает правильно (если утилита diff разрешена для
выполнения на удаленных системах).
СЮРПРИЗЫ
Защищенные файлы и файлы, находящиеся в защищенных ка-
талогах, владельцем которых является заказчик, могут
пересылаться в ходе работы команды uucp. Однако, если
заказчик является суперпользователем, а каталог недос-
тупен для просмотра или файл недоступен для чтения про-
чим пользователям, то запрос не будет удовлетворен.
|