PowerShell: Logifailide arhivaar

From ICO wiki
Jump to navigationJump to search

<Source lang="powershell">

<#

 .SYNOPSIS
    Skript otsib etteantud kaustast üles logifailid, mis on vanemad kui 7 päeva ja tõstab need arhiivi.
    Originaalkaustast kustutakse fail ära.
    Annab veateate, kui pole piisavalt vanu faile arhiveerimiseks.
 .DESCRIPTION
    Skript käivitatakse parameetriteta
 .EXAMPLE
    C:\> .\arhivaar.ps1
 .NOTES
    Autor: Kermo Pajula
    Versioon: 0.1 
    Muutmise kuup2ev: 21.05.2012
 .LINK
    https://wiki.itcollege.ee/index.php/PowerShell:_Logifailide_arhivaar
  1. >
  1. Määrame muutujad

$aeg = Get-Date $vanus = "7" $muudetud = $aeg.AddDays(-$vanus)

  1. Määrame kaustad ja faililaiendi

$kaust = "C:\Logs" $arhiiv = "C:\Logs\Archive" $laiend = "*.log"

  1. Võtame välja kõik failid, mis vastavad meie kriteeriumitele

$failid = Get-Childitem $kaust -Include $laiend -Recurse | Where {$_.lastwritetime -le "$muudetud"}

foreach ($fail in $failid) {

   if ($fail -ne $NULL) {
       #Kopeerime faili arhiivi ja kustutame kaustast ära
       $fail | % { copy $_.FullName $arhiiv -Force}
       Remove-Item $fail.fullname | out-null
   }
   else {
       Write-Host "Pole faile, mida arhiveerida"
   }

}