IIS 访问日志在哪里,如何清除和保存要的占的最近30天的Log默认路径:
C:\inetpub\logs\LogFiles\W3SVC1W3SVC1 是第一个站点;如果你 VPS 里面多个网站,编号依次 W3SVC2、W3SVC3
日志文件格式:u_ex260810.log,按天生成独立日志文件
2、HTTP 错误日志(连接失败、端口报错、HTTPS 异常)
C:\Windows\System32\LogFiles\HTTPERR快速打开方式:
打开 IIS 管理器
选中你的 站点
双击右侧「日志」,这里直接看见日志存储目录、启用状态。
IIS 日志只保留 30 天,到期自动删除操作步骤:
IIS → 站点 → 双击【日志】
日志文件‑滚动类型:按每天
然后写一个 Windows 定时执行的 bat 清理脚本
:: 删除C盘IIS访问日志,保留最近30天
forfiles /p "C:\inetpub\logs\LogFiles\W3SVC1" /s /m *.log /d -30 /c "cmd /c del @path"
:: 删除http错误日志,保留30天
forfiles /p "C:\Windows\System32\LogFiles\HTTPERR" /s /m *.log /d -30 /c "cmd /c del @path"计划任务设置每天凌晨 3 点运行脚本。
那么这个W3SVC X又是哪里看到的?此命令可以看到IIS内的全部域名绑定情况。
cd C:\Windows\System32\inetsrv
appcmd list sitesid 后面数字就是编号。
RetainLogs30Days.bat (以管理员身份运行)内容:
@echo off
fltmc >nul 2>&1 || (
echo 权限不足,请右键【以管理员身份运行】
pause
exit
)
title IIS日志清理 保留W3SVC2 W3SVC8
set "IIS_LogRoot=C:\inetpub\logs\LogFiles"
set "KeepDay=30"
:: 清理W3SVC2、W3SVC8三十天之前日志
if exist "%IIS_LogRoot%\W3SVC2" (
forfiles /p "%IIS_LogRoot%\W3SVC2" /m *.log /d -%KeepDay% /c "del /f /q @path" 2>nul
)
if exist "%IIS_LogRoot%\W3SVC8" (
forfiles /p "%IIS_LogRoot%\W3SVC8" /m *.log /d -%KeepDay% /c "del /f /q @path" 2>nul
)
:: 遍历所有日志文件夹
for /d %%a in ("%IIS_LogRoot%\*") do (
set "fname=%%~na"
setlocal enabledelayedexpansion
if /i not "!fname!"=="W3SVC2" if /i not "!fname!"=="W3SVC8" (
echo 处理废弃目录:%%a
:: 先清空全部日志
del /f /s /q "%%a\*.log" 2>nul
:: 尝试删除文件夹,正在被IIS占用时删除失败自动跳过
rd /s /q "%%a" 2>nul
)
endlocal
)
:: 清理系统HTTPERR错误日志
forfiles /p "C:\Windows\System32\LogFiles\HTTPERR" /m *.log /d -%KeepDay% /c "del /f /q @path" 2>nul
echo 日志清理执行完毕
pause