![]() |
Очистка папки с логами при достижении 10% свободного места
Коллеги привет! Помогите с написанием скрипта:
Суть такова, есть папка, в ней файлы логов, задача запускать скрипт очистки раз в час (тут вопросов нет), и если свободного места на диске осталось <10% то скрипт удаляет файлы старше 7 дней. Далее через час скрипт через планировщик запустится снова, и допустим места все равно осталось <10%, тогда скрипт должен удалить файлы старше 6 дней и так до текущего (текущий день с логами не удаляем). Есть пока такой, но собрать все в едино из за небольшого опыта не получается: (Проверяет на свободное место и удаляет файлы за 7 дней) $percentWarning = 10 $ListDisk = Get-WmiObject -Class Win32_LogicalDisk Foreach($Disk in $ListDisk){ if ($Disk.size -ne $NULL) { $DiskFreeSpace = ($Disk.freespace/1GB).ToString('F2') $DiskFreeSpacePercent = [Math]::Round(($Disk.freespace/$Disk.size) * 100, 2) if($DiskFreeSpacePercent -lt $percentWarning) { Get-ChildItem -Path "C:\Logs" -Filter *.log | where {$_.LastWriteTime -le (Get-Date).AddDays(-7)} | Remove-Item -Recurse -Force } } } |
Не проверял, пробуйте.
Код:
$disk = get-volume -DriveLetter "C" |
Время: 09:14. |
Время: 09:14.
© OSzone.net 2001-