НАЗВАНИЕ
uux - выполнение команд на удаленных системах
СИНТАКСИС
uux [-] [-a имя_пользователя] [-b] [-c] [-C] [-g приоритет] [-j] [-n] [ [-r] [-s файл] [-x уровень_отладки] [-z] командная_цепочка
ОПИСАНИЕ
Команда uux собирает ноль или более файлов с различных
систем, выполняет команду на указанной системе и затем
направляет стандартный вывод в файл на указанной системе. Отметим, что в целях безопасности во многих версиях
наложены ограничения на список команд, выполняемых uux.
Многие разрешают производить посредством uux только получение почты [см. mail(1)]. (Права на выполнение команд на удаленных системах указываются в файле
/usr/lib/uucp/Permissions).
Командная_цепочка состоит из одного или более аргументов и похожа на командную строку shell'а, но имена команд и файлов могут иметь префикс [имя_системы]!. Если имя_системы не указано, подразумевается локальная система.
Имя файла может быть:
Все остальное считается маршрутным именем относительно текущего каталога.
Например, команда
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 интерпретирует следующие опции:
ФАЙЛЫ
/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. Однако, если
заказчик является суперпользователем, а каталог недоступен для просмотра или файл недоступен для чтения прочим пользователям, то запрос не будет удовлетворен.