Я написал следующий скрипт для генерации отчета о SSRS, Excel и точка производительности путем анализа журналов IIS:Tuning PowerShell скрипт для журналов
Write-Host "`r"
if(!(Test-Path E:\BI_ToolUsage)){New-Item E:\BI_ToolUsage -type directory -force}
$today=(get-date).ToString("dd_MM_yyyy")
Write-Host "Content Farm Selected" -f green
$ConPaths="\\Server_logs\IC1-PS502\IIS-exports\*.log"
"date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken" |Out-file E:\BI_ToolUsage\Content_SSRS_$today.csv
"date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken" |Out-file E:\BI_ToolUsage\Content_ExcelService_$today.csv
"date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken" |Out-file E:\BI_ToolUsage\Content_PerformancePoint_$today.csv
Foreach($path in $ConPaths)
{
$path
gc $path |?{($_ | Select-String "RSViewerPage.aspx" | Out-file E:\BI_ToolUsage\Content_SSRS_$today.csv -Width 30000 -append);($_ | Select-String "xlviewer.aspx" | Out-file E:\BI_ToolUsage\Content_ExcelService_$today.csv -append -Width 30000);($_ | Select-String "PPSWebParts/ppsDashboard.css" |Out-file E:\BI_ToolUsage\Content_PerformancePoint_$today.csv -Width 30000 -append)}
}
$files=Get-ChildItem E:\BI_ToolUsage\Content*
foreach($file in $files){(Get-Content $file.FullName)| Where-Object {$_ -match '\S'}|%{$_ -replace " " , ","}|Out-File $file.FullName}
Write-Host "Completed !"
Дело здесь размер папки составляет 19,3 ГБ и в этом файле находится 671 файл: \ Server_logs \ IC1-PS502 \ IIS-exports Когда я запускаю этот скрипт, для создания отчетов обычно требуется около 3-4 дней. Можно ли как-то оптимизировать вышеупомянутый скрипт, который может сократить время, необходимое для завершения? Согласно моей модификации знаний в следующей части кода может помочь много:
gc $path |?{($_ | Select-String "RSViewerPage.aspx" | Out-file E:\BI_ToolUsage\Content_SSRS_$today.csv -Width 30000 -append);($_ | Select-String "xlviewer.aspx" | Out-file E:\BI_ToolUsage\Content_ExcelService_$today.csv -append -Width 30000);($_ | Select-String "PPSWebParts/ppsDashboard.css" |Out-file E:\BI_ToolUsage\Content_PerformancePoint_$today.csv -Width 30000 -append)}
Пожалуйста, посмотрите на это, и поделиться своим мнением. Благодаря
Вы действительно, действительно, действительно, ДЕЙСТВИТЕЛЬНО хотите использовать [LogParser] (http://www.microsoft.com/en-us/download/details.aspx?id=24659) для этого. Он понимает формат IIS, позволяет писать SQL-подобные запросы, а на моем ноутбуке жевать через 4 ГБ журналов IIS примерно через 10 минут. Если вы хотите, вы можете даже выводить результаты непосредственно на SQL Server. –
@BaconBits: спасибо за ответ. Будет ли возможно, чтобы вы рассказали мне вводную ссылку или какую-либо информацию о том, как использовать Logparser? – Lilly123