이 페이지의 내용
이벤트 스크립트에 인수를 전달하도록 이벤트 정책 구성
이벤트 정책이 이벤트 스크립트를 호출하면 정책이 스크립트에 인수를 전달할 수 있습니다. 다음 섹션에서는 이벤트 정책에서 인수를 구성하고 이벤트 스크립트 내에서 인수를 사용하는 방법을 간략하게 설명합니다.
이벤트 정책에서 이벤트 스크립트 인수 구성
이벤트 정책이 계층 아래의 정책 절 내에서 then 이벤트 스크립트에 전달하는 인수를 event-script filename arguments 구성합니다. 호출된 각 이벤트 스크립트에 대해 원하는 수의 인수를 구성할 수 있습니다.
[edit event-options policy policy-name then] event-script filename { arguments { argument-name argument-value; } }
스크립트에 대한 인수를 이름/값 쌍으로 포함합니다. 인수 값에는 트리거 이벤트 또는 기타 수신된 이벤트에 대한 정보가 포함된 변수가 포함될 수 있습니다. 그런 다음 이벤트 스크립트는 실행 중에 이 정보를 참조할 수 있습니다. 다음과 같은 형식의 변수를 사용할 수 있습니다.
{$$.attribute-name}- 이중 달러 기호($$) 표기법은 정책을 트리거하는 이벤트를 나타냅니다. 속성 이름과 결합하면 변수는 트리거 이벤트와 연결된 속성의 값으로 확인됩니다. 예를 들어, 은(는){$$.interface-name}트리거 이벤트와 연결된 인터페이스 이름으로 확인됩니다.{$event.attribute-name}- 이벤트 이름($event) 표기법이 있는 단일 달러 기호는 와 일치하는event가장 최근 이벤트를 나타냅니다. 속성 이름과 결합하면 변수는 해당 이벤트와 연결된 속성의 값으로 확인됩니다. 예를 들어, 은(는){$COSD_CHAS_SCHED_MAP_INVALID.interface-name}eventd 프로세스에 의해 캐시된 가장 최근COSD_CHAS_SCHED_MAP_INVALID이벤트와 연결된 인터페이스 이름으로 확인됩니다.
지정된 이벤트의 경우, 명령을 실행하여 참조할 수 있는 이벤트 속성 목록을 볼 수 있습니다 help syslog event .
user@host> help syslog event
예를 들어, 다음 명령 출력에서 꺾쇠 괄호(< >) 안의 텍스트는 COSD_CHASSIS_SCHEDULER_MAP_INVALID 이벤트의 속성을 표시합니다.
user@host> help syslog COSD_CHASSIS_SCHEDULER_MAP_INVALID Name: COSD_CHASSIS_SCHEDULER_MAP_INVALID Message: Chassis scheduler map incorrectly applied to interface <interface-name>: <error-message> ...
이벤트 속성 목록을 보는 또 다른 방법은 계층 수준에서 구성 모드 명령을 실행하는 set attributes-match event? 것입니다 [edit event-options policy policy-name] .
[edit event-options policy policy-name] user@host# set attributes-match event?
예를 들어, 다음 명령 출력 event.attribute 에서 목록은 및 interface-name 가 이벤트의 속성임을 보여줍니다error-message.cosd_chassis_scheduler_map_invalid
[edit event-options policy p1] user@host# set attributes-match cosd_chassis_scheduler_map_invalid? Possible completions: <from-event-attribute> First attribute to compare cosd_chassis_scheduler_map_invalid.error-message cosd_chassis_scheduler_map_invalid.interface-name
이 명령에서는 이벤트 이름과 물음표() 사이에 공백이 set 없습니다.?
참조할 수 있는 모든 이벤트 속성 목록을 보려면 계층 수준에서 구성 모드 명령을 [edit event-options policy policy-name] 실행합니다set attributes-match ?.
[edit event-options policy policy-name] user@host# set attributes-match ? Possible completions: <from-event-attribute> First attribute to compare acct_accounting_ferror acct_accounting_fopen_error ...
이벤트 스크립트에서 인수 사용
이벤트 정책이 이벤트 스크립트를 호출하면 이벤트 스크립트는 정책에 의해 전달된 모든 인수를 참조할 수 있습니다. 이벤트 스크립트의 인자 이름은 구성의 계층 구조 [edit event-options policy policy-name then event-scripts filename arguments] 에서 해당 이벤트 스크립트에 대해 구성된 인자의 이름과 일치해야 합니다.
SLAX 또는 XSLT 이벤트 스크립트 내에서 인수를 사용하려면 각 인수에 대한 매개 변수 선언을 포함해야 합니다. 이벤트 스크립트는 각 스크립트 인수의 값을 동일한 이름의 해당 매개 변수에 할당하며, 이 매개 변수는 스크립트 전체에서 참조할 수 있습니다.
XSLT 구문
<xsl:param name="argument-name"/>
SLAX 구문
param $argument-name;
Python 이벤트 스크립트 내에서 인수를 사용하려면 Python 언어에서 유효한 수단을 사용할 수 있습니다. 다음 예제에서는 Python argparse 모듈을 사용하여 스크립트 인수를 처리합니다. parser.add_argument 스크립트에 전달된 각 인수에 대해 문을 포함해야 합니다.
파이썬 구문
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-argument-name', required=True)
args = parser.parse_args()
# to use the argument reference args.argument-name
if __name__ == '__main__':
main()