기존 PRTG 설정을 Nagios 설정으로 이동하려고 합니다. 문제는 현재 20,000개가 넘는 모니터를 보유하고 있기 때문에 센서 정보를 .dat 파일에서 다른 여러 nagios 파일로 이동할 수 있는 읽기 가능한 파일로 내보내려고 한다는 것입니다. 문제는 제가 아직 스크립팅을 처음 접했고 bash가 스스로 종료되지 않도록 파일을 분할할 수 있는 스크립트를 만드는 것 외에는 모든 시도가 실패했다는 것입니다. 다른 사람이 작성한 스크립트를 사용하려고 했지만, 내가 원하는 대로 작동하지 않을 것 같습니다.
호스트***/호스트와 이름***/이름 사이의 모든 정보를 추출해야 합니다.
누군가가 적어도 내가 다양한 텍스트를 추출할 수 있도록 뭔가를 작성하는 방법을 알아낼 수 있는 방향을 알려준다면 그것도 효과가 있을 것입니다. :)
예:
<host>
10.0.0.0
</host>
<name>
This is a Business
</name>
제가 사용하고 있는 이 구성 파일은 크기가 거의 1GB에 달하는 .dat 파일이라는 점을 명심하세요.
<?xml version="1.0" encoding="UTF-8"?>
<root version="15" oct="PRTG Network Monitor 17.2.31.1917 x64"
saved="5/12/2017 4:36:26 PM" max="184692" guid="{3A6843F2-61BB-47EA-8EB2-
B2E62E24EF2F}" treeversion="0" created="2009-10-02-19-22-11"
<statistics time="12-05-2017 16:09:19">
답변1
다음과 같은 XML 파서를 사용하십시오.XML별표:
$ xmlstarlet sel -t -v '//host' -v '//name' file.xml
<host>
그러면 XML 문서의 어느 위치에서든 또는 <name>
노드 의 내용이 추출됩니다 file.xml
.
XMLStarlet은 일반 패키지 관리자를 통해 사용할 수 있습니다. 실행 파일은 xmlstarlet
때때로 xml
.