uux(1)

명칭
uux - UUCP 를 이용해, 리모트 머신상에서 명령을 실행한다

서식
uux [ options ] command

해설
리모트 시스템상에서 명령을 실행할 때, 또는 리모트 시스템상의 파일을 이용해, 로컬 시스템상에서 명령을 실행할 때에 uux 명령을 이용합니다. 명령은 즉석에서 실행되는 것이 아니고, uucico (8) demon가 시스템을 호출해, 작업을 실행할 때까지는 큐잉 됩니다. demon는, -r 또는, --nouucico 옵션을 지정해 본명령을 실행하지 않는 한, 자동적으로 불려 갑니다. 실제의 명령 실행은, uuxqt (8) demon가 실시합니다. 인수로 지정된 파일은, 리모트 시스템으로부터 실제로 명령 실행을 실시한다 시스템에 모을 수가 있습니다. 표준 입력에 대해서도 같습니다. 표준 출력은, 리모트 시스템상의 파일에 출력할 수가 있습니다. 리모트 시스템으로 명령을 실행하는 경우는,[시스템명] ! 의 후에, [명령명] 을 기술합니다. 시스템명이 공백의 경우에는, 로컬 시스템상에서의 명령의 실행이다고 보입니다. "! " 마크를 포함한 인수는, 파일명을 나타내고 있는 것으로 간주해집니다. "! " 마크의 전에는 파일이 존재하는 시스템명을, 후에는 파일에의 패스명을 기 술 합니다. 시스템명이 공백의 경우에는, 로컬 시스템상의 파일이라고 됩니다. 이 경우, 명령의 실행되는 리모트 시스템에 파일 전송이 발생합니다. 파일명이 절대 패스명이 아닌 경우, 현재의 로컬 시스템상의 작업 디렉토리명이 그 전에 부가됩니다. 이 경우, 리모트 시스템상에서 무효인 패스가 되어 버릴지도 모릅니다. 또, 패스명으로서 ~/ 가 선두에 부가되는 경우, 이것은 UUCP 퍼블릭 디렉토리(통상은 /usr/spool/uucppublic)로부터의 상대 패스이다고 보입니다. 일반적으로, ~name/ 로 시작되는 디렉토리는, 유저 name 의 홈 디렉토리이다고 하여 처리됩니다. 표준 입출력은 보통으로 리디렉트 됩니다. 패스명안에 "! " (을)를 포함할 때는, 그 파일이 리모트 시스템상에 있는 것으로서 다루어집니다. 리디렉트 캐릭터를 인수의 일부로서 취급할 때에는, 쉘로 해석되지 않고 uux 에 건네줄 수가 있도록(듯이) 쿼츠 하지 않으면 안됩니다. 또, 추가 기입 의 리디렉션 (>>)은 사용할 수 없습니다. 지정된 모든 파일은, 명령 실행전에 1개의 디렉토리에 모아집니다. 이 때문에, 각 파일은 다른 베이스 네임을 가질 필요가 있습니다. 예를 들면
uux 'sys1! diff sys2! ~user1/foo sys3! ~user2/foo >! foo.diff'
(은)는, 명령 실행시에 실패합니다. 왜냐하면, sys2 의 ~user1/foo 와 sys3 의 ~usr2/foo 의 양쪽 모두의 파일을, sys1 의 동일한 이름의 파일 foo 에 카피하기 (위해)때문입니다. 괄호로 둘러싸는 것으로 "! " 하지만 해석되는 것을 이스케이프 할 수 있습니다. 이것은 uucp 명령을 리모트 시스템상에서 실행할 때에 유용합니다. 명령명없이 실행(예: uux sys! ) 그러자(면), 시스템 sys 의 기록 파일 (원문: poll file)을 만듭니다.

옵션
이하의 옵션이 uux 그리고 사용 가능합니다.

-, -p, --stdin
    표준 입력으로부터 읽어들여, 그것을 실행하는 명령의 표준 입력의 내용으로 합니다.

-c, --nocopy
    로컬 파일을 spool 디렉토리에 카피하지 않습니다. 디폴트는 이 설정입니다. 만약, uucico (8) demon 실행전에 그 로컬 파일이 소거되어 버렸을 경우, 카피 (은)는 실패합니다. 파일은, uucico (8) demon와 uux (을)를 기동한 유저의 양자로부터 read 가능하지 않으면 안됩니다.

-C, --copy
    로컬 파일을 spool 디렉토리에 카피합니다.

-l, --link
    로컬 파일을 spool 디렉토리아래에 하드 링크 합니다. 파일 하지만 spool 디렉토리와는 다른 물리 디바이스상에 존재하는 경우, 링크는 칠 수 없습니다. 이 경우, -c 인가, --nocopy 옵션이 지정되어 있지 않은 한, spool 디렉토리아래에 대상 파일 하지만 카피됩니다(이것은, --link 하지만 --nocopy 의 것인지 비교적 --copy (을)를 디폴트 설정한다고 하는 것입니다). 파일이 uucico (8) demon의 처리전으로 변경되었을 경우, 전송 되는 파일은 변경 후의 파일입니다. 파일은, uucico (8) demon와 uux (을)를 기동한 유저의 양자로부터 read 가능하지 않으면 안됩니다.

-g grade, --grade grade
    파일 전송의 우선도를 설정합니다. 높은 우선도를 가지는 작업이 먼저 실행됩니다. 우선도는, 비싼 (분)편으로부터 0 ... 9 A ... Z a ... z 가 되고 있습니다.

-n, --notification=no
    작업의 결과를 통지하는 메일을 보내지 않습니다. 비유 작업이 실패해도입니다.

-z, --notification=error
    에러 발생시에, 작업의 결과에 대해 메일을 보냅니다. Taylor UUCP uuxqt (을)를 포함한 많은 uuxqt demon에서는, 이것이 디폴트의 동작이며, --notification=error (은)는 아무 효과도 없습니다. 그러나, --notification=error 옵션을 설정하고 있지 않으면 작업이 성공했을 경우에 메일 (을)를 보낸다 uuxqt demon도 있으면, --notification=error 옵션을 지정하지 않으면 작업이 실패했을 때에 메일을 보내 주지 않으면 있고 uuxqt demon도 있습니다.

-r, --nouucico
    uucico (8) demon를 즉시 실행하지 않습니다. 다음에 처리되도록(듯이) 요구를 큐에 모을 뿐입니다.

-j, --jobid
    작업의 id 를 표준 출력에 표시합니다. 작업의 id 는, 각 파일 카피 조작이 실제로 처리를 개시하도록(듯이) 요구되었을 때, 생성됩니다. 이러한 파일 카피 조작은, --kill 스윗치와 함께 uustat (1)에 작업 id 를 건네주는 것으로 취소 가능할지도 모르지 않습니다만, 그렇다면 작업은 완료 불능이 됩니다.

-a address, --requestor address
    지정한 E-mail 주소에 대해서 작업의 결과 보고를 보냅니다.

-x type, --debug type
    특정의 디버그 타입을 지정합니다. 타입으로서는, abnormal, chat, handshake, uucp-proto, proto, port, config, spooldir, execute, incoming, outgoing 가 있습니다만, uux 그럼, abnormal, config, spooldir, execute 의 4개만이 의미를 가집니다. 콤마로 단락짓는 것으로 복수의 디버그 타입이 지정 가능합니다. 그리고, --debug 옵션은, 1회의 명령 기동으로 여러 차례 지정 가능합니다. 또, 타입으로서 숫자를 지정하는 일도 가능합니다. 예를 들면, --debug 2 그렇다고 하는 지정은, --debug abnormal, chat (와)과 같은 의미입니다.

-I file, --config file
    사용하는 초기설정 파일의 지정을 행합니다. 다만, 본옵션이 사용 가능한지 어떤지는, uux 하지만 어떻게 컴파일 되었는지를 따릅니다.

-v, --version
    버젼을 표시해, 종료합니다.

--help
    헬프를 표시해, 종료합니다.

사용예
uux -z - sys1! rmail user1
명령 ``rmail user1''를, 시스템 sys1 상에서 실행합니다. 커멘드에의 입력 데이터는, 표준 입력이 이용됩니다. 작업이 실패했을 경우, mail (1) 명령에 의해 통지합니다.
uux 'diff -c sys1! ~user1/file1 sys2! ~user2/file2 >! file.diff'
시스템 sys1 와 시스템 sys2 상에 있는 파일을 취득해, diff (을)를 실행한 다음, 커런트 디렉토리의 파일 file.diff 에 결과를 출력합니다. 커런트 디렉토리는, uuxqt (8) demon에 의해 write 가능한 필요가 있습니다.
uux 'sys1! uucp ~user1/file1 (sys2! ~user2/file2)'
uucp (을)를, sys1 상에서 실행해, sys1 상의 파일 file1 를 sys2 상에 카피합니다. 이 예에서는, 인수를 쿼츠 하기 위해서 괄호를 이용하는 방법을 나타내고 있습니다.

제한
리모트 시스템에서는, 실행이 허가되지 않는 명령이 있을지도 모릅니다. 많은 리모트 시스템에서는, rmail (와)과 rnews 에 한해서 실행을 허가하고 있습니다. 실행될지 어떨지는, 리모트 시스템의 uuxqt (8) demon에게 의존하는 옵션이 있습니다.

관련 파일
관련 파일명은, 컴파일시의 지정내지는 초기설정 파일에 의해 변화합니다. 이하에 드는 것은, 그 일례입니다.
/usr/lib/uucp/config - 초기설정 파일
/usr/spool/uucp - UUCP spool 디렉토리
/usr/spool/uucp/Log - UUCP 로그 파일
/usr/spool/uucppublic - 디폴트의 UUCP 퍼블릭 디렉토리

관련 항목
mail(1), uustat(1), uucp(1), uucico(8), uuxqt(8)

버그
복수의 시스템에 걸쳐, 파일 참조를 할 수 없습니다. --jobid 옵션을 사용하면(자), 작업 id 가 매우 많이 출력되어 버립니다. 또, 리모트 파일을 필요로 하는 로컬인 명령의 실행을 캔슬하는 좋은 방법은 존재하지 않습니다.

저자
Ian Lance Taylor (ian@airs.com)