TGViewer
Системный Администратор Windows Системный Администратор Windows @win_sysadmin · 3.1K subscribers
Post #291 963
👋 Привет, админы!

Недавно столкнулся с интересным кейсом: один из файловых серверов начал сигнализировать о недостатке свободного пространства. При проверке выяснилось, что причиной стали старые логи IIS и системные файлы, которые копились неделями. Для нас, админов, важно держать «мусор» под контролем, чтобы не проснуться однажды с дискoм, полностью забитым «ненужными» данными.

🔥 В таких случаях мне помогает небольшой PowerShell-скрипт для автоматической очистки логов старше заданного числа дней. Вот что я настроил:


# Путь до папки с логами (пример для IIS)
$LogPath = "C:\inetpub\logs\LogFiles"

# Возраст файлов (в днях), после которого файлы подлежат удалению
$DaysThreshold = 30

# Получаем все файлы в папке и вложенных каталогах старше $DaysThreshold
$OldLogs = Get-ChildItem -Path $LogPath -Recurse -File |
Where-Object { ($_.LastWriteTime -lt (Get-Date).AddDays(-$DaysThreshold)) }

# Если есть файлы для удаления, выводим их и удаляем
if ($OldLogs) {
Write-Host "Найдены логи старше $DaysThreshold дней:`n" -ForegroundColor Yellow
$OldLogs | Select-Object FullName, LastWriteTime | Format-Table -AutoSize

# Удаляем найденные файлы
$OldLogs | Remove-Item -Force -Verbose
Write-Host "`nОчистка завершена." -ForegroundColor Green
} else {
Write-Host "Файлы старше $DaysThreshold дней не найдены." -ForegroundColor Green
}


Основные моменты:

1. Гибкая настройка пути: в переменной $LogPath можно указать любую директорию – например, логи SQL Server (C:\Program Files\Microsoft SQL Server\MSSQLxx.MSSQLSERVER\MSSQL\Log) или системные временные папки (C:\Windows\Temp).
2. Параметр возраста: переменная $DaysThreshold задаёт, сколько дней «жить» файлам, прежде чем они удалятся. Можно настроить, например, на 7 дней для критических логов или на 90 дней для менее важных.
3. Рекурсивный обход: флаг -Recurse позволяет удалять не только файлы в корне, но и во вложенных папках (удобно, если логи разбиты по датам или подпапкам).
4. Безопасность: перед удалением скрипт выводит список удаляемых файлов. Если сомневаетесь — закомментируйте строку Remove-Item и сначала просто отследите, какие файлы будут выбраны.

💬 Я запланировал выполнение этого скрипта через Task Scheduler каждую неделю в воскресенье в полночь. В результате освободилось несколько десятков гигабайт и администраторы перестали получать тревожные письма о заполненном разделе C:.

А как вы справляетесь с накоплением логов на серверах? Может, используете какие-то централизованные решения (SIEM, Splunk, ELK) для ретеншена и ротации? Делитесь своими приёмами в комментариях!

📲 Мы в MAX

👉 @win_sysadmin
  • 👍 8
  • 🔥 4
More from @win_sysadmin
  1. Sep 24, 2026👋 Привет, админы! Иногда нужно быстро понять — кто и когда логинился на сервер или важную…
  2. Sep 21, 2026👋 Привет, админы! Из жизни. На продакшн-сервере упал веб-сервис, выяснилось, что SSL-серт…
  3. Sep 16, 2026👋 Привет, админы! Сегодня расскажу про простой, но очень полезный трюк, который помогает…
  4. Sep 14, 2026👋 Привет, админы! На прошлой неделе в нашем кластере файловых серверов неожиданно начал б…
  5. Sep 11, 2026👋 Привет, админы! Как быстро проверить, какие пользователи имеют права администратора на…
  6. Sep 8, 2026👋 Привет, админы! Вспоминаю случай, когда утром в понедельник один из наших веб-сервисов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →