| HOME / 정보공유 / AIX 명령어 모음

rdist
rdist rdist 명령 목적 복수의 호스트에 동일한 파일 사본을 분산시킵니다. 구문
분산 파일을 사용하려면
rdist [ -n ] [ -q ] [ -b ] [ -D ] [ -R ] [ -h ] [ -i ] [ -v ] [ -w ] [ -y ] [ -f FileName ] [ -d Argument=Value ] [ -m Host ] ... [ Name ] ...
인수를 작은 분산 파일로 해석하려면
rdist [ -n ] [ -q ] [ -b ] [ -D ] [ -R ] [ -h ] [ -i ] [ -v ] [ -w ] [ -y ] -c Name ... [ Login@ ] Host [ :Destination ]
설명
주의: 2 GB 이상의 파일을 AIX 4.2 이전의 운영 시스템이나 비 운영 시스템 컴퓨터로 전송할 때는 rdist 명령을 사용하지 마십시오. 그러한 경우 이 명령을 사용하면 정의되지 않은 동작이 발생하며, 간혹 데이터가 손실되기도 합니다.
rdist 명령은 여러 개의 호스트에서 동일한 파일 사본을 유지합니다. rdist 명령은 가능한 경우, 파일의 소유자, 그룹, 모드 및 수정 시간을 보존하고, 수행 중인 프로그램을 갱신할 수 있습니다. rdist 명령은 다음과 같은 소스에서 지시를 받을 수 있습니다.
$HOME 디렉토리의 디폴트 분산 파일, distfile 파일
-f 플래그가 지정한 여러 분산 파일
분산 파일의 변수 정의를 증가하거나 겹쳐쓰는 명령행 인수
작은 분산 파일로 사용되는 명령행 인수
-f 플래그를 사용하지 않으면, rdist 명령은 사용자의 $HOME 디렉토리에서 distfile 파일을 찾습니다. distfile 파일이 없으면, Distfile 파일을 찾습니다.
Name 매개변수에 의해 지정된 값은 갱신될 파일 이름이나 실행할 부속명령으로서 읽혀집니다. 명령행에서 Name 매개변수의 값을 지정하지 않으면, rdist 명령은 분산 파일에 나열된 모든 파일과 디렉토리를 갱신합니다. Name 매개변수에 -(빼기 기호)를 지정하면, rdist 명령에서 표준 입력을 사용합니다. Name 매개변수로 지정된 파일의 이름이 부속명령의 이름과 같으면, rdist 명령은 Name 매개변수를 부속명령으로 해석합니다.
rdist 명령에서는 .rhosts 파일이 각 호스트에 구성설정되어야 합니다. 자세한 정보는 "TCP/IP에 대한 .rhosts 파일 형식" AIX 5L Version 5.1 Files Reference를 참조하십시오.
주:
rdist 명령이 원격 컴퓨터의 /usr/bin/rdist 디렉토리에 없으면 /usr/bin/rdist 디렉토리에서 rdist 명령의 실제 위치로 향하는 링크를 작성하십시오. 이 위치는 대개 /usr/ucb/rdist 디렉토리입니다.
현재, rdist 명령은 7 비트 ASCII 파일 이름만 처리할 수 있습니다.
파일
-b 플래그가 다르면 파일을 2진 비교하고 갱신합니다.
-c rdist 명령이 나머지 인수를 작은 분산 파일로 해석하도록 지정합니다. 사용 가능한 인수는 다음과 같습니다.
Name
단일 이름 또는 공백으로 구분된 이름 리스트를 지정합니다. 값은 파일이나 부속명령이 될 수 있습니다.
[Login@]Host
갱신될 기계와 갱신을 통지 받을 로그인 이름을 선택적으로 지정합니다.
Destination
단일 이름이 Name 인수에 지정된 경우, 원격 기계의 파일을 지정합니다. 한개 이상의 이름이 지정된 경우, 디렉토리를 지정합니다.
주: -f, -d, -m 플래그와 함께 -c 플래그를 사용하지 마십시오.
-d Argument=Value Value 변수에 의해 지정된 값을 Argument 변수가 가지도록 정의합니다. -d 플래그는 distfile 파일에 변수 정의를 정의하거나 대체합니다. Value 변수는 빈 문자열, 하나의 이름 또는 괄호로 묶이고 탭이나 공백으로 구분되는 이름 리스트로 지정될 수 있습니다.
-D 디버깅 출력을 작동시킵니다.
-f FileName 분배 파일의 이름을 지정합니다. -f 플래그를 사용하지 않으면, 디폴트 값은 $HOME 디렉토리의 distfile이나 Distfile 파일입니다.
-h 링크 자체가 아닌 링크가 지시하는 파일을 복사합니다.
-i 해석되지 않은 링크를 무시합니다. rdist 명령은 전송될 파일의 링크 구조를 유지하고, 모든 링크를 찾을 수 없는 경우, 사용자에게 경고합니다.
-m Host 갱신될 기계를 제한합니다. 갱신을 distfile 파일에 나열된 호스트의 부속 집합의 갱신을 제한하기 위해, -m Host 옵션을 여러 번 사용할 수 있습니다.
-n 부속 명령을 실행하지 않고 인쇄합니다. distfile 파일을 디버그하려면 -n 플래그를 사용하십시오.
-q 정적 모드로 작동합니다. -q 옵션은 표준 출력에 수정된 파일을 인쇄하지 못하도록 합니다.
-R 외부 파일을 제거합니다. 디렉토리가 갱신되고 있다면, 원격 호스트에 존재하지만 마스터 디렉토리에 없는 파일은 제거됩니다. 디렉토리들에 대하여 동일한 사본을 유지하려면 -R 플래그를 사용하십시오.
-v 파일이 모든 호스트에 최신인지를 검증합니다. 그리고 나서 오래된 파일은 표시됩니다. 그러나, rdist -v 명령은 파일을 변경하지도 않고 메일을 보내지도 않습니다.
-w 파일의 전체 경로 이름을 대상 디렉토리 이름에 추가합니다. rdist 명령은 파일을 재명명하기 위해 일반적으로 이름의 최종 구성요소만을 사용하고, 복사된 파일의 디렉토리 구조를 보존합니다.
-w 플래그가 ~로 시작하는 파일 이름과 함께 사용되면, 홈 디렉토리를 제외한 모든 것이 대상 이름에 추가됩니다. /나 ~로 시작하지 않는 파일 이름은 대상 사용자의 홈 디렉토리를 나머지 파일 이름의 루트 디렉토리로 사용합니다.
-y 파일의 최근 사본이 최근이 아닌 파일에 의해서 대체되지 않도록 합니다. 파일은 일반적으로 시간 소인과 크기가 달라지면 갱신됩니다. -y 플래그는 rdist 명령이 마스터 파일보다 더 최근인 파일을 갱신하지 못하도록 합니다.
분산 파일 (distfile 파일)
분산 파일은 rdist 명령으로 파일이 분산되도록 갱신할 때 복사할 파일, 분산을 위한 대상 호스트 및 수행할 조작을 지정합니다. 일반적으로 rdist 명령은 $HOME 디렉토리의 distfile 파일을 사용합니다. -f 플래그를 사용할 경우, 다른 파일을 지정할 수 있습니다.
항목 형식
분산 파일의 각 항목은 다음 형식 중의 하나를 갖습니다.
VariableName = NameList 분산 파일의 다른 항목에서 사용되는 변수들을 정의합니다(SourceList, DestinationList 또는 SubcommandList).
[Label:] SourceList -> DestinationList SubcommandList
rdist 명령이 SourceList 변수에 명명된 파일을 DestinationList 변수에 명명된 호스트로 분산시키도록 지시합니다. 분산 파일 명령은 추가 기능을 수행합니다.
[Label:] SourceList :: TimeStampFile SubcommandList
rdist 명령이 제공된 날짜 이후로 변경된 파일을 갱신하도록 지시합니다. 분산 파일 부속명령은 추가 기능을 수행합니다. SourceList 변수로 지정된 각 파일은 시간소인 파일보다 더 새로운 것일 경우, 갱신됩니다. 이 형식은 파일 복원에 유용합니다.
레이블은 선택적이고, 부분 갱신을 위한 부속명령을 식별하기 위해 사용됩니다.
항목
VariableName 분산 파일에 사용된 변수를 식별합니다.
NameList 파일과 디렉토리, 호스트, 또는 부속명령의 리스트를 지정합니다.
SourceList rdist 명령이 분산을 위한 마스터 사본으로 사용하기 위해 국지 호스트에 파일과 디렉토리를 지정합니다.
DestinationList 파일의 사본을 수신하는 호스트를 나타냅니다.
SubcommandList 실행될 분산 파일 부속명령을 나열합니다.
rdist 명령은 개행 문자, 탭 및 공백을 분리자로 처리합니다. 확장을 위한 분산 파일 변수는 $(달러 기호)로 시작되고 단일 문자나 {}(중괄호)로 묶인 이름이 그 다음에 옵니다. 주석은 #(파운드 기호)로 시작되어 개행 문자로 끝납니다.
소스 및 대상 리스트 형식
분산 파일 소스와 대상 리스트는 다음 형식과 같이 공백으로 구분된 0개 이상의 이름들로 이루어져 있습니다.
[Name1] [Name2] [Name3] ...
rdist 명령은 csh 명령과 같은 방법으로 국지 호스트에서 다음 쉘 메타문자를 인식하고 확장합니다.
[ (왼쪽 대괄호)
] (오른쪽 대괄호)
{ (왼쪽 중괄호)
} (오른쪽 중괄호)
( (왼쪽 괄호)
( (오른쪽 괄호)
*(별표)
? (물음표)
이 문자들이 확장되지 못하게 하려면, \(백슬래쉬)를 선행시키십시오. rdist 명령은 또한 csh 명령과 같은 방법으로 ~를 확장하지만, 국지와 대상 호스트에서 독립적으로 수행합니다.
분산 파일 부속명령
쉘에 대한 다중 명령어들은 ;(세미콜론)으로 구분해야 합니다. 명령어들은 갱신될 호스트의 사용자 홈 디렉토리에서 실행됩니다. 프로그램이 갱신된 후 특별한 부속명령이 개별 데이터베이스를 재작성하는 데 사용될 수 있습니다.
분산 파일 부속명령 리스트는 0개 이상의 다음 부속명령들이 포함될 수 있습니다.
install Options [OptionalDestName];
오래된 파일과 디렉토리를 복사합니다. rdist 명령은 각 소스 파일 또는 디렉토리를 대상 리스트의 각 호스트에 복사합니다. Option 변수로 지정된 사용 가능한 옵션은 rdist 명령 플래그 -b, -h, -i, -R, -v, -w 및 -y입니다. 이들 옵션은 SourceList 변수로 지정된 파일에만 적용됩니다. -R 플래그 사용시, 해당 파일 이름이 마스터 호스트에 없는 경우, 비어 있지 않은 디렉토리는 제거됩니다. OptionDestName 매개변수는 파일을 재명명합니다.
install 부속명령이 부속명령 리스트에 표시되지 않거나 대상 이름이 지정되어 있지 않으면, 소스 파일 이름이 사용됩니다. 경로 이름의 디렉토리는 이들이 원격 호스트에 없는 경우에 작성됩니다. 대상 호스트에 사용된 로그인 이름은 대상 이름의 형식이 login@host가 아닌 경우, 국지 호스트와 동일합니다.
notify NameList; 갱신된 파일 리스트와 리스트된 이름들(NameList 매개변수)에 발생할 수 있는 오류 리스트를 메일로 보냅니다. @(at 기호)가 이름에 나타나지 않으면, 대상 호스트가 이름에 추가됩니다(Name@Host).
except NameList; rdist 명령이 NameList 변수에 의해 지정된 파일을 제외하고 SourceList 항목에 의해 지정된 모든 파일을 갱신하도록 합니다.
except_pat NameList; rdist 명령은 NameList 변수에 의해 지정된 리스트의 멤버와 매치되는 문자열을 포함하는 어떤 파일도 갱신하지 못하게 합니다.
special NameList "String";
NameList 변수로 지정된 파일이 갱신되거나 설치된 후 원격 호스트에서 실행될 쉘 명령("String" 변수)을 지정합니다. NameList 변수가 생략되면, 쉘 명령는 갱신되거나 설치된 매 파일마다 실행됩니다. 쉘 변수 파일은 rdist 명령이 "String" 변수를 실행하기 전에 현재 파일 이름으로 설정됩니다. "String"값은 " "(큰따옴표)로 묶어야 하며, 분산 파일에서 여러 행에 걸쳐질 수 있습니다.
종료 상태
이 명령은 다음의 값을 리턴합니다.
0 명령이 성공적으로 완료되었음을 의미합니다.
>0 오류가 발생하였다는 것을 의미합니다.
예제
형식의 예제: 변수 이름 = 이름 리스트
어떤 호스트의 파일을 갱신할 것인지 나타내려면 다음과 같은 행을 입력하십시오.
HOSTS =( matisse root@arpa )
여기에서 HOSTS 변수는 matisse와 root@arpa로 정의됩니다. rdist 명령은 호스트 matisse와 root@arpa의 파일을 갱신합니다. 이 변수를 대상 리스트로 사용할 수 있습니다.
SourceList 항목의 값으로 사용할 이름을 표시하려면 다음과 같은 행을 입력하십시오.
FILES = ( /bin /lib/usr/bin /usr/games
/usr/include/{*.h,{stand,sys,vax*,pascal,machine}/*.h}
/usr/lib /usr/man/man? /usr/ucb /usr/local/rdist )
여기에서 FILES 값은 SourceList 항목에 대해 사용될 파일로 정의됩니다.
갱신 프로세스에서 어떤 파일을 제외시킬 것인지 나타내려면 다음과 같은 행을 입력하십시오.
EXLIB = ( Mail.rc aliases aliases.dir aliases.pag crontab dshrc
sendmail.cf sendmail.fc sendmail.hf sendmail.st uucp vfont)
여기에서 EXLIB 값은 갱신 처리에서 제외할 파일의 리스트로 정의합니다.
namelist 변수에 있는 파일과 확장자가 .o인 파일을 제외한 모든 파일이 복사되도록 /usr/src/bin의 모든 파일을 arpa로 복사하여 namelist 변수를 확장하려는 경우 다음을 입력하십시오.
/usr/src/bin->arpa
except_pat(\e\e.o\e ${ /SCCS\e ${}
또는
/usr/src/bin->arpa
except_pat(\\.o\e ${ /SCCS\e ${}
확장자가 .o인 파일을 제외한 모든 파일을 /usr/src/bin에서 arpa로 복사하려면 다음을 입력하십시오.
/usr/src/bin->arpa
except_pat(\\.o\$ /SCCS\$
형식의 예제: [label:] 소스 리스트 - 대상 리스트 부속명령 리스트
소스 파일 리스트를 대상 호스트 리스트로 복사하려면 다음과 같은 행을 입력하십시오.
${FILES} ->${HOSTS}
install -R
except /usr/lib/${EXLIB} ;
except /usr/games/lib ;
special /usr/sbin/sendmail "/usr/sbin/sendmail.bz" ;
행의 [Label:] 항목은 선택이며 여기에서는 표시되지 않습니다. $(달러 기호)와 {}(중괄호)는 파일 이름 FILES, HOSTS 및 EXLIB를 앞의 예제에서 지정한 리스트로 확장합니다. 나머지 예제는 부속명령 리스트로 구성됩니다.
[Label:] 항목을 사용하려면 다음과 같은 행을 입력하십시오.
srcsL:
/usr/src/bin -> arpa
except_pat (\e\e.o\e$ /SCCS\e$ ) ;
레이블은 srcsL:이고, 갱신을 위해 이 항목을 식별하는데 사용될 수 있습니다. /usr/src/bin 파일은 복사될 소스이고 호스트 arpa는 복사의 대상입니다. 세 번째 행은 부속명령 리스트의 부속명령을 포함합니다.
시간소인 파일을 사용하려면 다음과 같은 행을 입력하십시오.
${FILES} :: stamp.cory
notify root@cory
$(달러 기호)와 {}(중괄호)는 FILES에 의해 지정된 이름이 지정된 리스트로 확장되도록 합니다. 시간 소인 파일은 stamp.cory입니다. 마지막 행은 부속명령 리스트로부터 가져온 부속명령입니다.
파일
/usr/bin/rdist rdist 명령을 포함하고 있습니다.
$HOME/distfile
rdist 명령이 읽을 부속명령의 리스트를 포함하고 있습니다.
/tmp/rdist 갱신 리스트를 포함합니다. 이것은 임시 파일입니다.
관련 정보
csh 명령, ksh 명령, sh 명령
.rhosts 파일 형식.