Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

예: Op 스크립트를 사용하여 show 인터페이스의 출력 사용자 정의 terse 명령

이 예에서는 op 스크립트 를 사용하여 명령의 출력을 사용자 지정합니다 show interfaces terse . XSLT 스크립트에 대한 라인별 설명이 제공됩니다.

요구 사항

이 예에서는 Junos OS를 실행하는 디바이스를 사용합니다.

개요 및 운영 스크립트

기본적으로 명령의 show interfaces terse 레이아웃은 다음과 같습니다.

Junos XML에서 출력 필드는 다음과 같이 표시됩니다.

XSLT 구문

다음 스크립트가 명령의 show interfaces terse 출력을 사용자 정의합니다. 스크립트에 대한 라인별 설명이 제공됩니다.

라인별 설명

1-7호선, 20호선, 105호선 및 106호선은 모든 운영 스크립트에 포함된 상용구입니다. 자세한 내용은 Op 스크립트를 위한 필수 상용구(Boilerplate)를 참조하십시오.

줄 8 ~ 17은 스크립트에 대한 두 개의 인수를 포함하는 , 라는 arguments변수를 선언합니다.protocolinterface 이 변수 선언은 스크립트에 사용 가능한 인수로 명령줄 인터페이스(CLI)에 표시 interface protocol 하고 표시합니다.

18호와 19호는 8호선에서 17번 라인으로 생성된 인수에 해당하는 2개의 매개 변수를 스크립트에 선언합니다. 매개 변수 이름은 인수 이름과 정확히 일치해야 합니다.

20-31선을 지정한 변수 rpc를 선언합니다. show interfaces terse 이 명령은 변수에 rpc 할당됩니다. 스크립트를 실행할 때 인수를 interface 포함하면 인수(인터페이스 이름)의 값이 스크립트로 전달됩니다.

Line 32는 명명된 out 변수를 선언하고 해당 변수(show interfaces terse명령)의 rpc 실행에 적용합니다.

Line 33은 terse 수정되는 명령의 show interfaces 출력 수준이 (, detail등과 반대extensive) 되도록 지정합니다.

줄 34 ~ 39는 스크립트를 실행할 때 인수를 포함 protocol 하거나 지정inet한 프로토콜 값이 , inet6mpls또는 tnpintf 템플릿이 출력에서 해당 프로토콜 유형의 각 인스턴스에 적용되도록 지정합니다.

40-47 줄은 스크립트를 실행할 때 인수를 포함하고 protocol 사용자가 지정한 프로토콜 값이 에inet6mplstnp러 메시지가 생성되는 경우inet, 또는 다른 프로토콜 값이 아니라는 것을 지정합니다.

줄 48 ~ 52는 스크립트를 실행할 때 인수를 protocol 포함하지 않으면 템플릿이 출력의 intf 각 논리적 인터페이스에 적용되도록 지정합니다.

53-56호선은 폐쇄 태그입니다.

57행에서 템플릿이 intf 열립니다. 이 템플릿은 명령의 출력을 show interfaces terse 사용자 정의합니다.

Line 58은 인터페이스 상태를 보고하는 방법을 지정하는 용도인 변수status를 선언합니다. 59-78행은 가능한 모든 상태를 고려하여 변수를 status 채우는 명령이 포함되어 <xsl:choose> 있습니다. XSLT에서와 마찬가지로 TRUE로 평가되는 첫 번째 <xsl:when> 명령이 실행되고 나머지는 무시됩니다. 각 <xsl:when> 지침은 별도로 설명됩니다.

60-62줄은 '업'이면 oper-status 출력이 생성되지 않음을 지정 admin-status 합니다. 이 경우 변수는 status 비어 있습니다.

63-65줄은 '다운'인 경우 admin-status 변수에 status 텍스트 offline가 포함되도록 지정합니다.

66-68행은 '다운'된 경우 물리적 인터페이스 admin-status 가 '다운'된 경우 oper-status 변수에 status 텍스트p-offline가 포함되도록 지정합니다. (../물리적 인터페이스를 선택합니다.)

69-71호는 '다운'하고 물리적 인터페이스 oper-status 가 '다운'된 경우 oper-status 변수에 status 텍스트p-down가 포함되도록 지정합니다. (../물리적 인터페이스를 선택합니다.)

줄 72 ~ 74는 'down'인 경우 oper-status 변수에 status 텍스트 down가 포함되도록 지정합니다.

75줄에서 77까지는 테스트 케이스 중 어느 것도 사실이 아니라면 이 변수가 구분 기호로 슬래시(slash)로 포함 oper-status 되고 admin-status 연결되도록 지정합니다status.

78호선과 79호선이 닫히고 있습니다.

80~89호선은 으로 불리는 desc변수를 정의합니다. 명령어 <xsl:choose> 에는 사용 가능한 가장 구체적인 인터페이스 설명을 선택하여 변수가 채워집니다. 논리적 인터페이스 설명이 구성에 포함된 경우 변수를 채우는 desc 데 사용됩니다. 그렇지 않은 경우 물리적 인터페이스 설명이 사용됩니다. 물리적 인터페이스 설명이 구성에 포함되지 않으면 변수는 비어 있습니다. XSLT에서와 마찬가지로 TRUE로 평가되는 첫 번째 <xsl:when> 명령이 실행되고 나머지는 무시됩니다.

나머지 스크립트는 운영 모드 출력이 표시되는 방식을 지정합니다.

라인 90 및 91은 논리적 인터페이스 이름이 출력에서 먼저 표시되도록 지정합니다.

92-94줄은 변수에 desc 비제로 개수가 있는지 여부를 테스트합니다. 문자 수가 0을 초과하면 필드의 표준 위치에 인터페이스 설명이 admin-status 표시됩니다. (표준 출력 admin-status 에서 필드는 두 번째 줄에 표시됩니다.)

라인 95는 변수에 정의된 status 인터페이스 상태가 다음에 표시되도록 지정합니다.

96-103행은 스크립트를 실행할 때 인수를 protocol 포함하는 경우 구성된 프로토콜을 포함한 인터페이스만 표시됩니다. 인수를 protocol 포함하지 않으면 모든 인터페이스가 표시됩니다.

104-106선이 태그를 닫습니다.

SLAX 구문

스크립트의 SLAX 버전은 다음과 같습니다.

구성

절차

단계별 절차

스크립트를 다운로드, 활성화, 테스트하려면 다음을 수행합니다.

  1. XSLT 또는 SLAX 스크립트를 텍스트 파일에 복사하여 파일 인터페이스.xsl 또는 interface.slax의 이름을 적절하게 지정하고 장비의 /var/db/scripts/op/ directory에 복사합니다.

  2. 구성 모드에서는 계층 수준 및 interface.xsl 또는 interface.slax의 명령문을 [edit system scripts op] 적절하게 포함합니다file.

  3. commit and-quit 명령을 실행하여 구성을 커밋하고 운영 모드로 돌아갑니다.

  4. 운영 모드 명령을 실행하여 운영 스크립트를 op interface 실행합니다.

확인

커밋 스크립트 출력 검증

목적

스크립트가 예상대로 작동하는지 확인합니다.

작업

show interfaces terse op interface 및 운영 명령을 발행하고 출력을 비교합니다. show interfaces terse 명령은 표준 출력을 표시합니다. op interface 명령은 사용자 정의된 출력을 표시합니다.

op interface 서로 다른 계층 수준에 대해 운영 명령을 발행하고 출력을 검토합니다. 예를 들어: