- Удалить логи windows server
- Очистка логов для системы средствами wmic в Windows Server 2008 R2.
- Очистка журналов событий Windows с помощью PowerShell и wevtutil
- Очистка журналов событий с помощью PowerShell
- Очистка журналов с помощью консольной утилиты WevtUtil.exe
- Освобождаем место на сервере. Очистка логов
- Способы очистки логов
- Автоматическая очистка логов IIS с помощью PowerShell
Удалить логи windows server
просмотр журнала событий
Иногда чтобы посмотреть появляется какая либо ошибка или событие, трудно бывает искать его среди кучи событий, можно конечно фильтровать, но проще все очистить. Чистить в ручную долго и муторно, предлагаю скрипт который почистит все журналы windows. Перед выполнением скрипта советую в просмотре событий сохранить логи windows для дальнейшего изучения, много раз было, что старые файлы оказываются, очень нужны, учитесь на чужих ошибках, а лучше их вообще не совершайте.
До очистки видим, что в логах windows много событий
Выполняем скрипт, выполнять нужно от имени администратора.
После, результат на лицо все логи windows удалены в оснастке просмотр событий, и вы только обнаружите событие о том кто и когда произвел удаление.
вот сам текст скрипта
@echo off
FOR /F «tokens=1,2*» %%V IN (‘bcdedit’) DO SET adminTest=%%V
IF (%adminTest%)==(Access) goto noAdmin
for /F «tokens=*» %%G in (‘wevtutil.exe el’) DO (call :do_clear «%%G»)
echo.
echo goto theEnd
:do_clear
echo clearing %1
wevtutil.exe cl %1
goto :eof
:noAdmin
exit
Как видите логи windows очень быстро и легко удаляются скриптом, если нужно массово зачистить вешаем его в планировщике заданий. Так же советую ознакомится с методом Как очистить просмотр событий с помощью PowerShell
Очистка логов для системы средствами wmic в Windows Server 2008 R2.
“Логи в системе Windows7/Windows Server 2008 R2 Std хранятся по адресу c:\windows\system32\winevt\logs\”
Сейчас я покажу, как их очистить с помощью командной строки (cmd.exe) с использованием wmic.
Заходим в систему (dc1.polygon.local) с правами Администратора (ekzorchik) и запускаем командную строку (cmd.exe) в Административном окружении.
(,так делается в Windows 7 && Windows Server 2008/R2)
«Wmic nteventlog where filename=” ” call ClearEventlog»
Предлагаю Вам ознакомиться с примерами очистки логов в системе:
Очищаем лог Application :
C:\Windows\system32>wmic nteventlog where filename=»Application» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
При очистке лога его размер будет соответствовать (68KB), см скриншот:
Очищаем лог Security:
C:\Windows\system32>wmic nteventlog where filename=»Security» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
Очищаем лог System :
C:\Windows\system32>wmic nteventlog where filename=»System» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
Очищаем лог Active Directory Web Services :
C:\Windows\system32>wmic nteventlog where filename=»Active Directory Web Services» call ClearEventlog
nevt\\Logs\\Active Directory Web Services.evtx»)->ClearEventlog()
Method execution successful.
instance of __PARAMETERS
Очищаем лог DFS Replication :
C:\Windows\system32>wmic nteventlog where filename=»DFS Replication» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
Очищаем лог DFS Replication :
C:\Windows\system32>wmic nteventlog where filename=»Directory Service» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
Очищаем лог DNS Server :
C:\Windows\system32>wmic nteventlog where filename=»DNS Server» call ClearEventlog
Method execution successful.
instance of __PARAMETERS
Вот собственно и всё, может, кому и пригодится. Удачи.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
Очистка журналов событий Windows с помощью PowerShell и wevtutil
В некоторых случаях требуется удалить на компьютере или сервере все записи в журнале событий Windows. Конечно, очистку системных журналов, можно выполнить и из графической оснастки просмотра событий — Eventvwr.msc (ПКМ по нужному журналу ->Clear Log), однако начиная с Vista, в Windows используется несколько десятков журналов для различных компонентов системы, и очищать их все из консоли Event Viewer будет довольно утомительно. Гораздо проще очистить логи из командной строки: с помощью PowerShell или встроенной утилиты wevtutil.
Очистка журналов событий с помощью PowerShell
В том случае, если у вас установлен PowerShell 3 (по умолчанию уже установлен в Windows 8 / Windows Server 2012 и выше), для получения списка журналов и их очистки можно воспользоваться командлетами Get-EventLog и Clear-EventLog.
Запустите консоль PowerShell с правами администратора и с помощью следующей команды выведите список всех имеющихся в системе классических журналов событий с их максимальными размерами и количеством событий в них.
Для удаления всех событий из конкретного журнала событий (например, журнала System), воспользуйтесь командой:
Clear-EventLog –LogName System
В результате, все события из этого журнала будут удалены, а в журнале события останется только одно событие EventId 104 с текстом «The System log file was cleared».
Для очистки всех журналов событий нужно бы перенаправить имена журналов в конвейер, однако, к сожалению это запрещено. Поэтому нам придется воспользоваться циклом ForEach:
Get-EventLog -LogName * | ForEach
Таким образом, будут очищены все классические журналы EventLogs.
Очистка журналов с помощью консольной утилиты WevtUtil.exe
Для работы с событиями в Windows уже довольно давно имеется в наличии мощная утилита командой строки WevtUtil.exe. Ее синтаксис немного сложноват на первый взгляд. Вот, к примеру, что возвращает help утилиты:
Чтобы вывести список зарегистрированных в системе журналов событий, выполните команду:
WevtUtil enum-logs
или более короткий вариант:
На экране отобразится довольно внушительный список имеющихся журналов.
Можно получить более подробную информацию по конкретному журналу:
WevtUtil gl Setup
Очистка событий в конкретном журнале выполняется так:
WevtUtil cl Setup
Перед очисткой можно создать резервную копию событий в журнале, сохранив их в файл:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
Чтобы очистить сразу все журналы, можно воспользоваться командлетом Powershell Get—WinEvent для получения всех объектов журналов и Wevtutil.exe для их очистки:
Get-WinEvent -ListLog * -Force | %
Wevtutil el | ForEach
Примечание. В нашем примере не удалось очистить 3 журнала из-за ошибки доступа. Стоит попробовать очистить содержимое этих журналов из консоли Event Viewer.
Очистка журналов может быть выполнена и из классической командной строки:
Освобождаем место на сервере. Очистка логов
Место на сервере важный ресурс при недостаче, которого перестают корректно работать и запускаться службы системы. Важно контролировать остаток дискового пространства, и очищать сервер от ненужного мусора. Сами по себе файлы журнала много не занимают, но имеют свойство накапливаться, тем самым забивать пространство.
Оптимальным вариантом, будет периодическая очистка лог-файлов. Нужно заметить, что необходимо именно очистить содержимое этих файлов, а не просто их удалить. Удаление в будущем может произвести к массовым сбоям, так как эти файлы являются системные и есть неотъемлемой частью работы сервера.
Существует множество различных типов лог-файлов, которые содержат в себе информацию о ходе выполнения тех или иных действий в системе, можно выделить следующие:
- логи авторизации в системе;
- логи посещения сайта;
- логи ошибок;
- логи функционирования системы;
- логи работы FTP-сервисов;
- логи веб-сервера;
- логи выполнения планировщика задач (cron);
- логи баз данных;
- различные логи веб-почты.
Способы очистки логов
Выполнить очистку можно различными способами. Рассмотрим процесс очистки файлов без его фактического удаление через командную строку. Для начала подключаемся к серверу с root правами используя SSH протокол.
Проверить сколько в системе занятого и свободного места можно через команду df. После выполнения команды на экране отобразится информация о размере, использованного и доступного пространства, и другие параметры такие как: название разделов, занятий объем, занятый объем в процентной соотношении, размер, место монтирования и т.д.
Чтобы получить в терминале более читабельный вывод, применяется вместе с командой df опция -h.
Также можно сразу прописать путь к конкретной директории или раздел и получить статистику только по ним.
После чего вводим в консоль одну из ниже перечисленных команд для выполнения очистки файлов.
где path/log_file — путь к файлу который необходимо очистить.
truncate -s 0 log_file
где s — опция для указания будущего размера файла, который нужно очистить.
0 — размер файла (в байтах).
Этой командой мы “урезаем” файл до нужного размера, считается одним из самых безопасных методов очистки файлов.
- утилита cat плюс /dev/null
cat /dev/null > path/log_file
Если же вас интересует автоматическая настройка управления лог-файлов как советуем ознакомиться с документацией по утилите logrotate.
Возникли трудности в очистке логов?Тех.поддержка ГиперХост всегда рада помочь отладить этот вопрос всем своим клиентам услуг хостинга.
Автоматическая очистка логов IIS с помощью PowerShell
Веб сервер IIS (Internet Information Services) в процессе работы генерирует довольно большое количество логов, которые пишутся в файлы журналов. Основная проблема в том, что по-умолчанию журналы IIS расположены на системном диске, и со временем файлы логов могут забить все доступное место на диске и работа сервера будет парализована. К примеру, в моем случае на Exchange Server 2013 с почти 1000 ящиков, IIS генерирует за день лог-файл порядком 200 Мб. Таким образом, за год, файлы логов IIS будут занимать 70 Гб дискового пространства. Можно ли как-то управлять эти процессом?
В IIS отсутствует какая-либо встроенная процедура ротации логов IIS, поэтому администраторам приходится выдумывать собственные схемы для автоматической ротации или удаления журналов IIS на веб серверах.
В первую очередь администратор должен в принципе решить, нужны ли вообще логи, которые генерирует IIS. Если вопрос отрицательный – ведение журналов логов можно отключить в настройках сайта в консоли Internet Information Services (IIS) Manager в разделе Logging. В некоторых случая также применим перенос файлов журналов с системного диска на диск с данными/выделенный диск. Для этого в том же разделе достаточно изменить путь к каталогу LogFiles.
Так по-умолчанию, в Windows Server 2003 логи IIS хранятся в папке %windir%\system32\LogFiles\ и в Windows Server 2008 / 2012 /R2 в папке %SystemDrive%\inetpub\logs\LogFiles\.
В случае исчерпания свободного места на системно диске, администратор судорожно пытается найти чем забит диск, и благополучным образом не обращает внимание на каталог inetpub, т.к. на первый взгляд его размер незначителен. Проблема в том, что по умолчанию у администратора нет прав на просмотр стандартных каталогов внутри папки inetpub, и таким образом проводник Windows не показывает реальный размер вложенных папок.
Если попытаться открыть каталог %SystemDrive%\inetpub\logs\LogFiles, подтверждая назначение необходимых разрешений (или запустить проводник с правами администратора), можно увидеть, что на самом деле размер папки с логами довольно велик.
Как правило, можно безопасно удалить все файлы логов старше 3-7 дней. Это можно сделать вручную (не самый лучший вариант), либо автоматически с помощью скрипт PowerShell который будет удалять старые лог файлы по расписанию.
Простой PowerShell скрипт, который будет рекурсивно удалять файлы с расширением *.log из каталога C:\inetpub\logs может быть таким:
gci ‘C:\inetpub\logs -Include ‘*.log’ -Recurse | ? LastWriteTime -LT (Get-Date).AddDays(-7) | Remove-Item
Для автоматического запуска скрипта можно создать такое задание в планировщике (Task Scheduler):
- Запустите Task Scheduler
- В правой панели Action щелкните по Create Basic Task
- Укажите имя задания: CleanIISLog
- Настроим задание на еженедельный запуск по субботам
- Запускаемая программа: powershell.exe
- Аргументы: —NoProfile -command «gci ‘C:\inetpub\logs’ -Include ‘*.log’ -Recurse | ? LastWriteTime -LT (Get-Date).AddDays(-7) | Remove-Item»
- Теперь откройте свойства созданного задания
- Укажите, что задание будет запускаться из-под Системы (NT AUTHORITY\System) и поставьте чекбокс Run with highest privileges
- Протестируйте задание, щелкнув по нему ПКМ и выбрав Run
- Убедитесь, что все лог файлы старше 7 дней автоматически удалены
Совет. Еще один способ «быстро» уменьшить размер логов, когда удалять их по каким-то причинам нельзя – включить NTFS сжатие на каталоге с логами. Т.к. логи представляют собой простые текстовые файлы, жмутся они довольно сильно (в 4 -5 раз). Чтобы включить NTFS компрессию, откройте свойства папки с логами и нажмите на кнопку Advanced. Отметьте галку Compress contents to save disk space и дважды нажмите OK.