- play_arrow 개요
- play_arrow Junos 자동화 스크립트 개요
- play_arrow Junos XML 관리 프로토콜 및 Junos XML API 개요
-
- play_arrow XSLT를 사용한 자동화 스크립팅
- play_arrow XSLT 개요
- play_arrow 자동화 스크립트에 사용되는 표준 XPath 및 XSLT 함수
- play_arrow 자동화 스크립트에 사용되는 표준 XSLT 요소 및 특성
-
- play_arrow SLAX를 사용한 자동화 스크립팅
- play_arrow SLAX 개요
- play_arrow SLAX 문
- append
- apply-imports
- apply-templates
- attribute
- attribute-set
- call
- copy-node
- copy-of
- decimal-format
- element
- else
- else if
- expr
- fallback
- for
- for-each
- function
- if
- import
- key
- match
- message
- mode
- mvar
- number
- output-method
- param
- preserve-space
- priority
- processing-instruction
- result
- set
- sort
- strip-space
- template
- terminate
- trace
- uexpr
- use-attribute-sets
- var
- version
- while
- with
- play_arrow 자동화 스크립팅을 위한 libslax 배포판
-
- play_arrow Python을 사용한 자동화 스크립팅
- play_arrow Python 개요
- Junos 디바이스용 Python 자동화 스크립트 이해
- Junos 디바이스에서 Python 자동화 스크립트를 실행하기 위한 요구 사항
- Junos 디바이스의 Python 모듈 개요
- Junos OS를 실행하는 디바이스에서 Python 대화형 모드를 사용하는 방법
- psutil 모듈을 사용하여 Junos OS를 실행하는 디바이스에서 프로세스 및 시스템 정보를 검색하는 방법
- Junos OS를 실행하는 디바이스에서 Python용 요청 라이브러리를 사용하는 방법
- Python 자동화 스크립트의 IPv6 지원
- Junos OS Evolved를 실행하는 디바이스의 Python 3 애플리케이션에서 라우팅 인스턴스를 지정하는 방법
-
- play_arrow 자동화 스크립트 입력
- play_arrow 자동화 스크립트의 전역 매개 변수
-
- play_arrow 자동화 스크립트에 대한 확장 기능 및 명명된 템플릿
- play_arrow 자동화 스크립팅을 위한 확장 함수
- play_arrow jcs 및 slax 네임스페이스의 확장 함수
- base64-decode() Function (SLAX)
- base64-encode() Function (SLAX)
- break-lines() Function (SLAX and XSLT)
- close() Function (SLAX and XSLT)
- dampen() Function (Python, SLAX, and XSLT)
- document() Function (SLAX)
- emit_error() Function (Python)
- emit_snmp_attributes Function (Python)
- emit_warning() Function (Python)
- empty() Function (SLAX and XSLT)
- evaluate() Function (SLAX)
- execute() Function (SLAX and XSLT)
- first-of() Function (SLAX and XSLT)
- get-command() Function (SLAX)
- get-hello() Function (SLAX and XSLT)
- get-input() Function (SLAX and XSLT) and get_input() (Python)
- get-protocol() Function (SLAX and XSLT)
- get-secret() Function (SLAX and XSLT) and get_secret() (Python)
- get_snmp_action() Function (Python)
- get_snmp_oid() Function (Python)
- hostname() Function (Python, SLAX, and XSLT)
- invoke() Function (SLAX and XSLT)
- open() Function (SLAX and XSLT)
- output() Function (Python, SLAX, and XSLT)
- parse-ip() Function (SLAX and XSLT) and parse_ip() (Python)
- printf() Function (Python, SLAX, and XSLT)
- progress() Function (Python, SLAX, and XSLT)
- regex() Function (SLAX and XSLT)
- set_routing_instance() Function (Python)
- sleep() Function (SLAX and XSLT)
- split() Function (SLAX and XSLT)
- sysctl() Function (Python, SLAX, and XSLT)
- syslog() Function (Python, SLAX, and XSLT)
- trace() Function (Python, SLAX, and XSLT)
- play_arrow 자동화 스크립팅을 위한 명명된 템플릿
- play_arrow jcs 네임스페이스의 명명된 템플릿
-
- play_arrow 자동화 스크립트 관리
- play_arrow 스크립트 저장 및 사용
- play_arrow 스크립트에 대한 원격 소스 구성
- play_arrow 스크립트에 대한 세션 프로토콜 구성
- play_arrow 스크립트 실행 제어
- play_arrow 라우팅 엔진 간 스크립트 동기화
- play_arrow SLAX와 XSLT 간 스크립트 변환
-
- play_arrow 구성 명령문 및 작동 명령
진화한 Junos OS를 실행하는 디바이스에서 스크립트 처리 추적
대화형 스크립트를 실행하면 스크립트가 CLI 또는 RPC 응답에서 경고 및 오류를 포함한 출력을 생성할 수 있습니다. 시스템이 비대화형 스크립트를 트리거할 때(예: 이벤트 정책이 이벤트 스크립트를 트리거할 때) 스크립트는 터미널로 출력을 지시하지 않습니다. 두 경우 모두 스크립트 실행에 대한 자세한 정보가 필요할 수 있습니다. Junos OS Evolved는 기본적으로 모든 애플리케이션에 대한 추적 데이터를 캡처합니다. 메모리 및 CPU 사용량, 스크립트 인수, 스크립트 실행, 경고 및 오류를 비롯한 추가 스크립트 처리 정보에 대해 수집된 추적을 볼 수 있습니다.
Junos OS Evolved는 라우팅 엔진의 모든 노드에 있는 모든 애플리케이션으로부터 추적 데이터를 수집합니다. Junos OS는 각 스크립트 유형에 대한 추적 데이터를 별도의 로그 파일에 기록하는 반면, Junos OS Evolved는 모든 스크립트에 대한 추적 데이터를 동일한 위치에 저장합니다. 추적 로그에는 커밋, 이벤트, op 및 SNMP 스크립트에 대한 데이터가 포함됩니다. YANG 작업 및 변환 스크립트; 및 주니퍼 Extension Toolkit 스크립트.
스크립트에 대한 추적 데이터를 표시하는 방법
Junos OS Evolved는 기본 라우팅 엔진에서 수집된 모든 노드의 추적 데이터를 /var/log/traces 디렉터리에 저장합니다. 응용 프로그램에서 cscript
스크립트를 처리하고 스크립트에 대한 추적 데이터는 .cscript.sequence-number 하위 디렉터리에 저장됩니다node.
스크립트에 대한 추적 데이터를 보려면 작동 모드 명령을 실행합니다 show trace application cscript
.
user@host> show trace application cscript 2021-05-20 09:11:42.239695672 re0:cscript:4176:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-20 09:11:42.239773157 re0:cscript:4176:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's limits are already set by parent process" 2021-05-20 09:11:42.239812430 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "op script processing begins" 2021-05-20 09:11:42.239855140 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /usr/libexec/ui/cscript" 2021-05-20 09:11:42.239865140 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -mop" 2021-05-20 09:11:42.239866196 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -p" 2021-05-20 09:11:42.239867156 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /" 2021-05-20 09:11:42.239868116 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -Q2" 2021-05-20 09:11:42.239869131 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -f" 2021-05-20 09:11:42.239882048 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: hello.py" 2021-05-20 09:11:42.239883202 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -d134217728" 2021-05-20 09:11:42.239884135 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -E" 2021-05-20 09:11:42.239885131 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: user admin logname admin host host tty /dev/pts/0 agent op-script current-directory /var/home/admin pid 32212 ppid 32206" 2021-05-20 09:11:42.239886175 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -u" 2021-05-20 09:11:42.239887176 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: admin" 2021-05-20 09:11:42.239888251 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -U" 2021-05-20 09:11:42.239889287 re0:cscript:4176:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -i9" 2021-05-20 09:11:42.245988806 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "running op script 'hello.py'" 2021-05-20 09:11:42.246006519 re0:cscript:4176:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "opening op script '/var/db/scripts/op/hello.py'" ...
타임스탬프와 terse
메시지만 표시하는 옵션을 포함할 수 있습니다.
user@host> show trace application cscript terse 2021-05-20 09:11:42.239695672 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-20 09:11:42.239773157 msg = "Process's limits are already set by parent process" 2021-05-20 09:11:42.239812430 msg = "op script processing begins" ...
또한 경과된 추적 시간, 프로세스 ID 및 노드를 지정하여 표시할 추적을 구체화할 수 있습니다. 예를 들어 다음 명령은 특정 프로세스 ID에 대한 추적 데이터를 보여 줍니다.
user@host> show trace application cscript pid 10683 2021-05-24 09:42:09.552687492 re0:cscript:10683:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's current softlimit [134217728] hardlimit [-1]" 2021-05-24 09:42:09.552819712 re0:cscript:10683:TRACE_INFO CSCRIPT_RUSAGE_CSCRIPT_RUSAGE_1 msg = "Process's limits are already set by parent process" 2021-05-24 09:42:09.552897412 re0:cscript:10683:TRACE_INFO CSCRIPT_EVENTS_CSCRIPT_EVENTS_1 msg = "action script processing begins" 2021-05-24 09:42:09.553025992 re0:cscript:10683:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: /usr/libexec/ui/cscript" 2021-05-24 09:42:09.553095062 re0:cscript:10683:TRACE_INFO CSCRIPT_ARGUMENTS_CSCRIPT_ARGUMENTS_1 msg = "arg: -maction" ...
스크립트에 대한 추적 설정을 수정하는 방법
Junos OS Evolved는 기본적으로 스크립트 처리를 추적하고 정보 메시지를 위해 정보 수준에서 모든 애플리케이션을 추적합니다. 계층 수준에서 특정 응용 프로그램에 [edit system application]
대한 추적 설정을 구성할 수 있습니다. 예를 들어, 지정된 노드에서 응용 프로그램의 추적 수준을 지정할 수 있습니다.
스크립트 추적 작업을 수정하려면 계층 수준에서 설정을 [edit system trace application cscript]
구성합니다. 다음 예제에서는 디버그 수준에서 re0 노드에 대한 스크립트 처리를 추적하도록 응용 프로그램을 구성합니다 cscript
.
[edit] user@host# set system trace application cscript node re0 level debug user@host# commit
추적 설정 구성에 대한 자세한 내용은 trace를 참조하십시오.