рдмреИрдХрдЕрдк рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рдЪреБрдирдирд╛

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдлреНрд░рдВрдЯ-рдСрдлрд╝рд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓реЙрдЧреНрд╕ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЛ рдЪреБрдирд╛ред


рдЬрд┐рд╕ рдбрд┐рд╡реАрдЬрди рдореЗрдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдмреИрдВрдХ рдХреЗ рдПрдХреАрдХреГрдд рдлреНрд░рдВрдЯ рдСрдлрд┐рд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд░рдЦрд░рдЦрд╛рд╡, рдирд┐рдЧрд░рд╛рдиреА рдФрд░ DevOps рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реВрдВред


рд╣рдорд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рджреИрдирд┐рдХ рд░реВрдк рд╕реЗ 5,000 рд╕реЗ рдЕрдзрд┐рдХ рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЕрддреНрдпрдзрд┐рдХ рднрд░рд╛ рд╣реБрдЖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдЖрдЬ рдпрд╣ рдПрдХ "рдЕрдЦрдВрдб" рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рднреА рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдм рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЪрд▓ рд░рд╣реА рд╣реИред


рд╣рд░ рджрд┐рди, рд╣рдорд╛рд░реА рдкреНрд░рдгрд╛рд▓реА 130 рдЬреАрдмреА рд╕реЗ рдЕрдзрд┐рдХ рдХрдЪреНрдЪреЗ рд▓реЙрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ, рдФрд░ рдпрджреНрдпрдкрд┐ рд╣рдо ENG рдвреЗрд░ (Elasticsearch Nxlog Greylog) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рд▓реЙрдЧ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ), рдФрд░ рдЗрд╕рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдФрд░ рднрдВрдбрд╛рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


рдЪреВрдВрдХрд┐ рднрдВрдбрд╛рд░рдг рд╕реНрдерд╛рди рд╕реАрдорд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ: "рдФрд░ рдХреМрди рд╕рд╛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧрд╛ред"


рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ PowerShell рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ред


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХрд╛рд░реНрдп рд╡рд┐рднрд┐рдиреНрди рд╕рдВрдкреАрдбрд╝рди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдПрдЖрд░, 7z рдФрд░ рдЬрд╝рд┐рдк рдЖрд░реНрдХрд╛рдЗрд╡реНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИ, рд╕рдВрдЧреНрд░рд╣ рдЧрдарди рдХреА рдЧрддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рд╕рд╛рде рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


ArchSearch.ps1
#Requires -Version 4.0 #  ,      Clear-Host #   ,     Set-Location $PSScriptRoot #  ,      $Archive = "Archive" $ArchFileName = "ArchFileName" [array]$path = (Get-ChildItem '.\logs').DirectoryName|Select-Object -Unique #      -.  ,     . if ((Test-Path -Path ".\$Archive") -ne $true){ New-Item -Path .\ -Name $Archive -ItemType Directory -Force } else { #    -    Get-ChildItem .\$Archive|Remove-Item -Recurse -Force } #      [array]$table=@() #   Rar #rar # m<0..5> Set compression level (0-store...3-default...5-maximal) 1..5|foreach{ $CompressionLevel = $("-m" + $_) $mc = Measure-Command {cmd /c .\rar.exe a -ep1 -ed $CompressionLevel -o+ -tsc .\$Archive\$($ArchFileName + $_) "$path"} [math]::Round(($mc.TotalMilliseconds), 0) $ArchFileNamePath = ".\$Archive\$($ArchFileName + $_ + ".rar")" $table += ""|Select-Object -Property @{name="ArchFileName"; expression={$ArchFileNamePath -split "\\"|Select-Object -Last 1}},` @{name="CompressionLevel"; expression={$CompressionLevel}},@{name="Extension"; expression={"rar"}},@{name="Size"; expression={(Get-ChildItem $ArchFileNamePath).Length}},` @{name="Time"; expression={[math]::Round(($mc.TotalMilliseconds), 0)}},` @{name="Size %"; expression={0}},@{name="Time %"; expression={0}},@{name="Result %"; expression={0}} } #   7z #7z # -mx[N] : set compression level: -mx1 (fastest) ... -mx9 (ultra) #cmd /c "$env:ProgramFiles\7-Zip\7z.exe" a -mx="$MX" -mmt="$MMT" -t7z -ssw -spf $($ArchFileName + "Fastest") "$path" 1..9|foreach{ $CompressionLevel = $("-mx=" + $_) $mc = Measure-Command {cmd /c "$env:ProgramFiles\7-Zip\7z.exe" a $CompressionLevel -t7z -ssw -spf .\$Archive\$($ArchFileName + $_) $path} #-mmt="$MMT" [math]::Round(($mc.TotalMilliseconds), 0) $ArchFileNamePath = ".\$Archive\$($ArchFileName + $_ + ".7z")" $table += ""|Select-Object -Property @{name="ArchFileName"; expression={$ArchFileNamePath -split "\\"|Select-Object -Last 1}},` @{name="CompressionLevel"; expression={$CompressionLevel}},@{name="Extension"; expression={"7z"}},@{name="Size"; expression={(Get-ChildItem $ArchFileNamePath).Length}},` @{name="Time"; expression={[math]::Round(($mc.TotalMilliseconds), 0)}},` @{name="Size %"; expression={0}},@{name="Time %"; expression={0}},@{name="Result %"; expression={0}} } #   zip (  PS "Compress-Archive") #zip 1..2|foreach{ Switch ($_){ 1{$CompressionLevel = "Fastest"} 2{$CompressionLevel = "Optimal"} } $mc = Measure-Command {Compress-Archive -Path $path -DestinationPath .\$Archive\$($ArchFileName + $_) -CompressionLevel $CompressionLevel -Force} [math]::Round(($mc.TotalMilliseconds), 0) $ArchFileNamePath = ".\$Archive\$($ArchFileName + $_ + ".zip")" $table += ""|Select-Object -Property @{name="ArchFileName"; expression={$ArchFileNamePath -split "\\"|Select-Object -Last 1}},` @{name="CompressionLevel"; expression={$CompressionLevel}},@{name="Extension"; expression={"zip"}},@{name="Size"; expression={(Get-ChildItem $ArchFileNamePath).Length}},` @{name="Time"; expression={[math]::Round(($mc.TotalMilliseconds), 0)}},` @{name="Size %"; expression={0}},@{name="Time %"; expression={0}},@{name="Result %"; expression={0}} } #     Size     [0] -     $Size = ($table|Sort-Object -Property Size)[0].Size / 100 #     Time     [0] -      $Time = ($table|Sort-Object -Property Time)[0].Time / 100 #    $table|foreach { $_.time $_."Size %" = [math]::Round(($_.Size / $Size), 0) $_."Time %" = [math]::Round(($_.Time / $Time), 0) if ($_."Size %" -ge $_."Time %"){ $_."Result %" = $_."Size %" - $_."Time %" } else { $_."Result %" = $_."Time %" - $_."Size %" } } #        "Size %" -     $table|Sort-Object -Property "Size %","Result %"|Select-Object -First 1|Format-Table -AutoSize #        "Result %" -          $table|Sort-Object -Property "Result %","Size %","Time %"|Select-Object -First 1|Format-Table -AutoSize $table|Sort-Object -Property "Size %","Result %"|Select-Object -First 1|Format-Table -AutoSize $table|Sort-Object -Property "Result %","Size %","Time %"|Select-Object -First 1|Format-Table -AutoSize #  !   ,     Get-ChildItem .\$Archive|Remove-Item -Force 

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп:


 #   ,   PowerShell  4.0 ($PSVersionTable): #Requires -Version 4.0 #  ,      Clear-Host #   ,     (   .\) Set-Location $PSScriptRoot 

 #  ,      $Archive = "Archive" $ArchFileName = "ArchFileName" [array]$path = (Get-ChildItem '.\logs').DirectoryName|Select-Object -Unique #      -.  ,      if ((Test-Path -Path ".\$Archive") -ne $true){ New-Item -Path .\ -Name $Archive -ItemType Directory -Force } else { #   ,     Get-ChildItem .\$Archive|Remove-Item -Recurse -Force } #      [array]$table=@() 

рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ


 #     1  5       foreach 1..5|foreach{ 

 #    $CompressionLevel   1  5($_),       $CompressionLevel = $("-m" + $_) 

 #  Measure-Command     ,   {} $mc = Measure-Command {cmd /c .\rar.exe a -ep1 -ed $CompressionLevel -o+ -tsc .\$Archive\$($ArchFileName + $_) "$path"} 

 #       [math]::Round(($mc.TotalMilliseconds), 0) #    $ArchFileName + $_ + ".rar": Archive1.rar $ArchFileNamePath = ".\$Archive\$($ArchFileName + $_ + ".rar")" #   $table (+=)   $table += ""|Select-Object -Property @{name="ArchFileName"; expression={$ArchFileNamePath -split "\\"|Select-Object -Last 1}},` @{name="CompressionLevel"; expression={$CompressionLevel}},@{name="Extension"; expression={"rar"}},@{name="Size"; expression={(Get-ChildItem $ArchFileNamePath).Length}},` @{name="SizeAVD"; expression={0}},@{name="Time"; expression={[math]::Round(($mc.TotalMilliseconds), 0)}},` @{name="Size %"; expression={0}},@{name="Time %"; expression={0}},@{name="Result %"; expression={0}} } 

 #     Size     [0] -     $Size = ($table|Sort-Object -Property Size)[0].Size / 100 #     Time     [0] -      $Time = ($table|Sort-Object -Property Time)[0].Time / 100 #    $table|foreach { $_.time $_."Size %" = [math]::Round(($_.Size / $Size), 0) $_."Time %" = [math]::Round(($_.Time / $Time), 0) if ($_."Size %" -ge $_."Time %"){ $_."Result %" = $_."Size %" - $_."Time %" } else { $_."Result %" = $_."Time %" - $_."Size %" } } #        "Size %" -     $table|Sort-Object -Property "Size %","Result %"|Select-Object -First 1|Format-Table -AutoSize #        "Result %" -          $table|Sort-Object -Property "Result %","Size %","Time %"|Select-Object -First 1|Format-Table -AutoSize #  !   ,    . Get-ChildItem .\$Archive|Remove-Item -Force 

 $table|Sort-Object -Property "Size %","Result %"|Format-Table -AutoSize 

ArchFileNameрд╕рдВрдкреАрдбрд╝рди рд╕реНрддрд░рдПрдХреНрд╕рдЯреЗрдВрд╢рдирдЖрдХрд╛рд░рд╕рдордпрдЖрдХрд╛рд░%рд╕рдордп%рдкрд░рд┐рдгрд╛рдо%
ArchFileName8.7z-рдорд┐рдХреНрд╕ = 87z2651152062,40410016741574
ArchFileName9.7z-рдорд┐рдХреНрд╕ = 97z2651152064,61410017331633
ArchFileName7.7z-рдорд┐рдХреНрд╕ = 77z2894817652,83210914171308
ArchFileName6.7z-рдорд┐рдХреНрд╕ = 67z30051742373391131002889
ArchFileName5.7z-рдорд┐рдХреНрд╕ = 57z3123935535,169118943825
ArchFileName4.rar-m4rar3351469311426126306180
ArchFileName5.rar-m5rar3346515212894126346220
ArchFileName3.rar-m3rar336980799835127264137
ArchFileName2.rar-m2rar34399885835213022494
ArchFileName4.7z-рдорд┐рдХреНрд╕ = 47z38926348647014717427
ArchFileName3.7z-рдорд┐рдХреНрд╕ = 37z44545819588916815810
ArchFileName2.7z-рдорд┐рдХреНрд╕ = 27z51690114475419512867
ArchFileName1.rar-m1rar53605833460020212379
ArchFileName1.7z-рдордХреНрд╖ = рез7z574721723728217100117
ArchFileName2.zipрдЗрд╖реНрдЯрддрдордЬрд╝рд┐рдк6573324214025248376128
ArchFileName1.zipрд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗрдЬрд╝рд┐рдк81556824903130824266

 $table|Sort-Object -Property "Result %","Size %","Time %"|Format-Table -AutoSize 

ArchFileNameрд╕рдВрдкреАрдбрд╝рди рд╕реНрддрд░рдПрдХреНрд╕рдЯреЗрдВрд╢рдирдЖрдХрд╛рд░рд╕рдордпрдЖрдХрд╛рд░%рд╕рдордп%рдкрд░рд┐рдгрд╛рдо%
ArchFileName3.7z-рдорд┐рдХреНрд╕ = 37z44545819588916815810
ArchFileName4.7z-рдорд┐рдХреНрд╕ = 47z38926348647014717427
ArchFileName1.zipрд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗрдЬрд╝рд┐рдк81556824903130824266
ArchFileName2.7z-рдорд┐рдХреНрд╕ = 27z51690114475419512867
ArchFileName1.rar-m1rar53605833460020212379
ArchFileName2.rar-m2rar34399885835213022494
ArchFileName1.7z-рдордХреНрд╖ = рез7z574721723728217100117
ArchFileName2.zipрдЗрд╖реНрдЯрддрдордЬрд╝рд┐рдк6573324214025248376128
ArchFileName3.rar-m3rar336980799835127264137
ArchFileName4.rar-m4rar3351469311426126306180
ArchFileName5.rar-m5rar3346515212894126346220
ArchFileName5.7z-рдорд┐рдХреНрд╕ = 57z3123935535,169118943825
ArchFileName6.7z-рдорд┐рдХреНрд╕ = 67z30051742373391131002889
ArchFileName7.7z-рдорд┐рдХреНрд╕ = 77z2894817652,83210914171308
ArchFileName8.7z-рдорд┐рдХреНрд╕ = 87z2651152062,40410016741574
ArchFileName9.7z-рдорд┐рдХреНрд╕ = 97z2651152064,61410017331633

 #  !   ,    . Get-ChildItem .\$Archive|Remove-Item -Force 

рдкрд░рд┐рдгрд╛рдо:
рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдмрд╕реЗ рдХрд┐рдлрд╛рдпрддреА 7z рдерд╛, рдЬреЛ рдХрд┐ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд -mx = 8 рдФрд░ -mx = 9 рдерд╛



рд╕рдмрд╕реЗ рддреЗрдЬ рд╕рдВрдЧреНрд░рд╣ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рдордп 7z рдерд╛ рдЬрд┐рд╕рдХрд╛ рдиреНрдпреВрдирддрдо рдЕрдиреБрдкрд╛рдд -x = 1 рдерд╛



рдЧрддрд┐ рдФрд░ рдХрдмреНрдЬреЗ рд╡рд╛рд▓реЗ рд╕реНрдерд╛рди рдореЗрдВ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо 7z рдерд╛, рдЬреЛ рдПрдордПрдХреНрд╕ = 3 рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рдерд╛



рд╣рдо 7z рдХреЛ -mx = 8 рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рдХреЗ рд╕рд╛рде рдЪреБрдирддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдЧреНрд░рд╣ рдХрд╛ рдЖрдХрд╛рд░ -mx 9 рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рддреЗрдЬрд╝ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рдорд╣рд╛рди, рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рдВрдкреАрдбрд╝рди рдЕрдиреБрдкрд╛рдд рдЪрдпрдирд┐рдд рд╣реИрдВ, рдЕрдм рд▓реЙрдЧ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВ!


рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


  1. рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдЙрдЪреНрдЪ рд╕рд░реНрд╡рд░ рд▓реЛрдб рд╕реЗ рдмрдЪреЗрдВред
  2. рд╕рдмрдлрд╝реЛрд▓реНрдбрд░ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рд╕рднреА рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВред
  3. 30 рджрд┐рдиреЛрдВ рд╕реЗ рдкреБрд░рд╛рдиреЗ рдЕрднрд┐рд▓реЗрдЦреЛрдВ рдХреЛ рд╣рдЯрд╛рдПрдВ (рддрд╛рдХрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдерд╛рди рд╕реЗ рдмрд╛рд╣рд░ рди рдЪрд▓рд╛ рдЬрд╛рдП)ред
  4. рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдЧрдП рд╕рдордп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджрд┐рди рддрдХ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдмрдирд╛рдПрдВред

ArchLogs.ps1
 #Requires -Version 4.0 #          #SCHTASKS /Create /SC DAILY /ST 22:00 /TN ArchLogs /TR "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe C:\Scripts\ArchLogs.ps1" /RU "NT AUTHORITY\NETWORKSERVICE" /F /RL HIGHEST #  ,      Clear-Host #   ,     Set-Location $PSScriptRoot #           . #  1 Function Set-MMTCore { $Core = (Get-WmiObject тАУclass Win32_processor|Measure-Object NumberOfLogicalProcessors -sum).Sum / 2 $CoreTMP = $Core / 4 IF ($Core -lt 4) { $Core = $Core -1 } Else { $Core = $Core - $CoreTMP } [math]::Round($Core) } #    $MX = 8 #     $MMT = Set-MMTCore #  ,      $SearchFolder = "C:\inetpub" #     $SearchFolder $InetpubFolder = Get-ChildItem $SearchFolder #     Logs #  2 $LogsFolder = $InetpubFolder|foreach {Get-ChildItem $_.Fullname|Where-Object{$_.PSIsContainer -eq $true}|Where-Object{$_.name -eq "logs"}} #  ,      $Archive = "Archive" $ArchiveFile = "ArchFiles.txt" #      $LogsFolder   $LogsFolderName   foreach($LogsFolderName in $LogsFolder.Fullname){ $LogsFolderName #   $Archive,       IF ((Test-Path -Path "$LogsFolderName\$Archive") -ne $true){New-Item -Path $LogsFolderName -Name $Archive -ItemType Directory -Force} #    30  #  3 Get-ChildItem "$LogsFolderName\$Archive"|Where-Object {$_.LastWriteTime -le (Get-Date).AddDays(-30)}| Remove-Item -Force #     [Array]$ArchiveItems = Get-ChildItem -Path $LogsFolderName -Exclude $Archive #   , .    -  IF ($ArchiveItems.Count -ne ^_^quot&#0;quot^_^){ #       $AllLogsFiles = Get-ChildItem $ArchiveItems -Recurse <#-Filter *.log#>|Where-Object {$_.LastWriteTime -lt (Get-Date).Date} #     #  4 $AllData = ($AllLogsFiles|Sort-Object -Property LastWriteTime).LastWriteTime.Date|Select-Object -Unique $AllData foreach ($Data in $AllData){ IF ($ArchiveItems.Count -ne ^_^quot&#0;quot^_^){ #         ($AllLogsFiles|Where-Object {$_.LastWriteTime -lt (Get-Date).Date}|Where-Object {$_.LastWriteTime -ge (Get-Date $Data) -and $_.LastWriteTime -lt (Get-Date $Data).AddDays(1)}).FullName|Out-File .\$ArchiveFile -Force -Encoding default Write-Host "===" $Data Write-Host "===" #      IF ($(Get-Content .\ArchFiles.txt -Encoding default) -ne $null){ $ArchiveFileName =$(($LogsFolderName.Remove($LogsFolderName.LastIndexOf("\"))) -split "\\"|Select-Object -Last 1) + "_" + $(Get-Date $Data -Format dd-MM-yyyy) cmd /c "$env:ProgramFiles\7-Zip\7z.exe" a -mx="$MX" -mmt="$MMT" -t7z -ssw -sdel "$LogsFolderName\$Archive\$ArchiveFileName" "@$ArchiveFile" #        IF(Test-Path ".\$ArchiveFile"){Remove-Item ".\$ArchiveFile" -Force} #      Logs $LogsFolderName|foreach {Get-ChildItem $_|Where-Object {(Get-ChildItem -Path $_.FullName) -eq $null}|Remove-Item -Force} } } } } } 

рдпрд╣рд╛рдВ рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд) рдХреЛ рдЪрд┐рддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рд╕реЗрдЯ-рдПрдордПрдордЯреАрд╕реАрдХреЛрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╕реНрдерд┐рдд рд╣реВрдВ, рдЬреЛ рд╣рдореЗрдВ 7z рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЛрдб рди рд╣реЛ рд╕рдХреЗ:


 Function Set-MMTCore { #        2 $Core = (Get-WmiObject тАУclass Win32_processor|Measure-Object NumberOfLogicalProcessors -sum).Sum / 2 #      4 $CoreTMP = $Core / 4 IF ($Core -lt 4) { $Core = $Core -1 } Else { $Core = $Core - $CoreTMP } #    [math]::Round($Core) } 

рд╕реЗрдЯ- MMTCore рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдкреАрдпреВ 100% рдкрд░ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА рдирд┐рдЧрд░рд╛рдиреА рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЕрд▓рд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред



рд╕реЗрдЯ-рдПрдордПрдордЯреАрд╕реАрдЖрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдкреАрдпреВ 30-35% рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╕реЗрдЯ-рдПрдордПрдордЯреАрд╕реАрдХреЛрд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдмреИрдХрдЕрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдкрд░рд┐рдгрд╛рдо:


рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдкрд╣рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░:


рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдмрд╛рдж рдлрд╝реЛрд▓реНрдбрд░:


рд╕рдВрдЧреНрд░рд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ:


рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЗрдВ:


Source: https://habr.com/ru/post/hi484414/


All Articles