Список iis - очищення

Веб-сервер IIS в процесі своєї роботи генерує досить великі обсяги log-файлів. Все б нічого, але за замовчуванням логи IIS розташовуються на системному диску. якому зазвичай не надають великий обсяг. Добре, якщо у вас віртуальна машина і ви можете просто не звертати увагу на брак диска C: \, збільшуючи його обсяг за необхідності, благо функціонал віртуальних машин Hyper-V другого покоління дозволяє збільшувати розмір навіть системного диска без виключення сервера, прямо нальоту. А якщо у вас такої можливості немає? В такому випадку розростання логів може стати для вас серйозною проблемою.

У статті я розповім як поводитися з log-файлами IIS і автоматизувати процес видалення.

Якщо вам цікава тематика Windows Server, рекомендую звернутися до тегу Windows Server на моєму блозі.

За замовчуванням логи IIS розташовуються в каталозі% SystemDrive% \ inetpub \ logs \ LogFiles. Сигналом для їх очищення може служити виснажуються швидкими темпами вільне місце системного диска. В цьому випадку системні адміністратори починають шукати що ж займає стільки місця і благополучно пропускають папку inetpub, оскільки за замовчуванням вона практично нічого не важить:

Список iis - очищення

Але чому? Справа в тому, що спочатку ви не маєте дозволів на вкладені папки, отже не можете побачити їх реальний обсяг:

Список iis - очищення

Спробуйте зайти в кожну підпапку каталогу% SystemDrive% \ inetpub \ logs \ LogFiles. погоджуючись з призначенням необхідних дозволів і в підсумку побачите, що реальний обсяг папок не так вже й малий:

Список iis - очищення

Зрозуміло у мене наведені в приклад скріншоти з тестового сервера. Обсяг логів серверів в продакшені може досягати десятків і сотень гігабайт абсолютно спокійно.

Команда для очищення log-файлів в нашому випадку буде виглядати наступним чином:

PS C: \ Windows \ system32> gci 'C: \ inetpub \ logs \ LogFiles' -Include '* .log' -Recurse |. LastWriteTime -LT (Get-Date) .AddDays (-3) | Remove-Item

У Командлети (Get-Date) .AddDays (-3) замість значення -3 задайте своє. -3 говорить про те, що будуть вилучені всі файли старше трьох днів. Для мене це оптимальне значення, для вас воно може відрізнятися. У продакшені рекомендую залишати мінімум тиждень історії, а якщо дозволяє вільне місце, то і цілий місяць не буде зайвим.

Створимо окремий обліковий запис, адміністратором її робити не потрібно:

Список iis - очищення

Конфігурація комп'ютера \ Конфігурація Windows \ Параметри безпеки \ Локальні політики \ Призначення прав користувача

Список iis - очищення

Далі необхідно видати користувачеві права на каталог% SystemDrive% \ inetpub \ logs \ LogFiles. Досить прав на читання + права на видалення файлів і папок:

Список iis - очищення

Знову відкриваємо вікно призначення прав і замінюємо дозволу всіх дочірніх елементів батьківськими (без цього працювати не буде, адже на цьому каталозі відключено успадкування):

Список iis - очищення

Наступний крок - створення запланованого завдання (в аргументах вставте команду, про яку йшлося вище):

Список iis - очищення

Не забудьте перевірити завдання - виконайте вручну і якщо все пройшло добре (див. Журнал завдання), поставте виконання через 2-3 хвилини від поточного часу, щоб перевірити як воно працює при автоматичним запуску. При цьому переконайтеся, що старі файли дійсно пішли.

Схожі статті