저는 완벽하게하려고하는 두 개의 스크립트가 있습니다. 나를 도울 수있는 파워 쉘 전문가가 필요해!Powershell, Textfile에서 정보를 추출하십시오.
정보 열이있는 다양한 서버의 일련의 로그 파일 (텍스트 형식)이 있습니다. Powershell 스크립트 (아래)는 특정 coulmns의 세부 정보를 찾고 계산하여 텍스트 파일을 출력합니다.
예 로그 파일 :
http://www.megaupload.com/?d=63XS8VKA
스크립트 # 1
이 스크립트는 로그 파일에 "세부 사항"열을보고 모든 계산합니다 (결합 된 RTP 패킷 (들) 손실) "XX RTP 패킷이 손실되었습니다"(예 : 57 개의 RTP 패킷이 손실되었습니다)
스크립트는 (* .log) 파일을 포함하는 모든 디렉토리 또는 폴더에서 실행될 수 있으며 당신은 잃어버린 RTP 패킷의 총량을 알 수 있습니다. (법인에 의해 손실 된 총 RTP 패킷 (들))
$sum = 0
foreach ($i in dir -filter *.log -Rec)
{
$sum += (gc $i.fullname | select -Skip 5 | ConvertFrom-Csv -Delimiter "`t" | ? {$_.Details - match "^(\d+)"} |% {$matches[1]} | Measure-Object -Sum).Sum
}
$sum | Tee-Object -FilePath .\CombinedResults.txt
[Console]::Write("Press any key to continue . . . ")
[Console]::ReadKey()
스크립트 # 2
이 스크립트는 로그 파일의 "세부 사항"칼럼을보고 계산합니다 모든 "XX RTP 패킷 (들) (예 : 57 RTP 패킷이 손실되었습니다) 엔티티 (카메라) 당 손실 된 전체 패킷이 "엔티티"열에 표시됩니다.
스크립트는 (* .log) 파일이있는 디렉토리 또는 폴더에서 실행될 수 있으며 엔티티 당 손실 된 RTP 패킷의 총량을 제공합니다.
이러한 로그 파일은 다양한 서버에서 온, 나는 결과가 서버에서 filterd 싶은 : 여기
$out=foreach ($i in dir -filter *.log -Rec)
{
$cameras = gc $i.fullname | select -Skip 5 | ConvertFrom-Csv -Delimiter "`t" | group "Entity "
$cameras | select Name, @{n="Total";e={ ($_.group | ? {$_.Details -match "^(\d+)"} |% {$matches [1]} | Measure-Object -Sum).Sum}} | ? {$_.Total -gt 0}
}
$out | Tee-Object -FIlePath .\ByEntityResults.txt
[Console]::Write("Press any key to continue . . . ")
[Console]::ReadKey()
나는 acheive하기 위해 노력하고있어 무슨. 왼쪽 위 모서리에있는 로그 파일에 "컴퓨터 이름 :"이라고 표시됩니다.
두 스크립트 모두에 대해 컴퓨터 이름으로 필터 결과를 표시하고자합니다.
최종 결과 예 :
Script # 1
Computer Name: T3-Archiver22
Total RTP Packet(s) lost = 43243
Computer Name: T3-Archiver24
Total RTP Packet(s) lost = 8837
Script # 2
Computer Name: T3-Archiver22
Entity Name: Total RTP Packet(s) lost
(7233)C2-GF-127 - 10.20.13.69(P) 54
.
.
.
Computer Name: T3-Archiver24
Entity Name: Total RTP Packet(s) lost
(6547)U2 Z-C14 27
.
.
.
어떤 도움이 좋을 것입니다!
가 데이터를 수집하기 위해 서버 당 하나 개 이상의 로그 파일이있을 수 있는지 알 필요가 –