SIP 트렁크의 상태를 반환하는 PABX 시스템에서 실행되는 perl 스크립트를 만듭니다. 펄과perl에서 linux 명령 출력 분할 및 필터링
/usr/sbin/asterisk -rx "sip show registry"
이
Host dnsmgr Username Refresh State Reg.Time
x.x.x.x:5060 N 02xxxxxxxx 105 Registered Thu, 28 Aug 2014 06:34:21
1 SIP registrations.
나는 사용자 이름 필드를 필터링하고 상태 필드를 얻으려면 다음과 같은 출력을 반환 다음 명령의 출력을 사용하여 스크립트를 만들려면 매우 새로운 해요 , 나는 다음 명령을 사용하여 명령 줄에서 쉽게이 작업을 수행 할 수 있지만 perl에서 최선을 다해 작업하는 데 어려움을 겪고 있습니다. 또한 perl 함수를 사용하거나 grep 및 awk와 같은 프로그램에 데이터를 다시 전달하는 것이 가장 좋습니다.
/usr/sbin/asterisk -rx "sip show registry" | awk '/02xxxxxxxx/ {print $5}'
상태 열에서,이 예제에서는이
Registered
내가 다음 if 문 상태를 비교하고 상태에 따라 작업을 수행 할 반환 무엇이든 반환
이 조금 보인다 쉬운 충분히.
이 예에서는 SIP 트렁크가 하나 뿐이지 만 많은 경우가있을 수 있습니다.
최적화 된 one-liner 버전 대신 split, print 및 if 문과 같은 주요 구성 요소로 위 코드를 제공하면 더 잘 이해할 수 있습니다. Thanks –
@MattPrice : 업데이트를 확인하십시오. – choroba
@ choroba이 다중 매개 변수 형식의 open이 활성화 된 perl의 버전을 알고 있습니까? 5.12에 없지만 5.18에있는 것 같습니다. 또한 혜택을 간단히 설명해 주시겠습니까? 나는 이미 몇 가지 이점을 알고 있지만 귀하의 경험에 감사 할 것이라고 믿습니다. – Miller