IISログが無期限に作成され、古いログファイルを自動的に消去するIIS設定がないようです。 IISログを管理して、ハードドライブ全体がいっぱいにならないようにするための最良の方法?
それを行うには、スケジュールされたタスクを実行する必要があります。これが動作するはずのPowershellスクリプトです。
set-location c:\windows\system32\Logfiles\W3SVC1\ -ErrorAction Stop
foreach ($File in get-childitem -include *.log) {
if ($File.LastWriteTime -lt (Get-Date).AddDays(-30)) {
del $File
}
}
これにより、30日以上前に最後に変更されたものがすべて削除されます。最初の行のパスを、ログファイルが保存されている場所に変更します。また、-30を、ファイルを保持する期間に変更します。 -30は、30日より古いものを削除することを意味します。
LastWriteTimeを使用したくない場合は、FileInfoオブジェクトのさまざまなプロパティを示す this article をご覧ください。 。
自分で醸造することもできますが、賢い人がすでにこれを書いていると思います。チェックアウト IISLogs & IISLogs Lite!
ログを削除するだけの場合は、不要な場合はログをオフにできます。サーバーに大量のI/Oを節約できます。
私は現在、非常に単純なバッチファイルスクリプトを使用してこれを行っています。
forfiles -p C:\inetpub\logs\LogFiles\ -s -m *.log -d -180 -c "cmd /C DEL @File"
また、Scheduled Taskエントリを作成して毎日起動し、そのフォルダのファイル圧縮機能もアクティブにしました。これらすべてにより、IISファイルに関する問題が完全に修正されました。
バッチファイル内のスイッチの説明:
実行可能な Powershell の代替案を探している場合は、IIS LogFilesフォルダーを適切に削減する方法に関するその他の提案について、 この他の回答 :を参照、- この投稿をチェック 。
ええと、それらを定期的にクリーンアップしたい場合は、IISでの要求のログ記録を無効にしてみませんか? IISログがパフォーマンスに影響を与え、すべてのディスク領域を使い果たしてしまうことで頭痛を回避するために、Googleアナリティクスや他のサービスなどの何かを使用する可能性があります。すべての要件に依存します。コース。
Microsoftは そのWebサイトのスクリプト を推奨しています。
以下は、私が私のニーズに使用している修正バージョンです。
Wscript.Echo "Starting log removal"
sLogFolder = "d:\retentiontest"
iMaxAge = 30 'in days
Set objFSO = CreateObject("Scripting.FileSystemObject")
set colFolder = objFSO.GetFolder(sLogFolder)
Wscript.Echo "Removing log files from folder: " & colFolder
For Each colSubfolder in colFolder.SubFolders
Set objFolder = objFSO.GetFolder(colSubfolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
iFileAge = now-objFile.DateLastModified
if iFileAge > (iMaxAge+1) then
Wscript.Echo "Removing File: " & objFile.Name
objFSO.deletefile objFile, True
end if
Next
Next
コピーされたファイルの場合のように、直感的に作成された日付は最後に変更された日付よりも遅い可能性があるため、「DateCreated」から「DateLastModified」に変更したことに注意してください。最近更新されたファイルを削除したくない場合があります。
次に、cscript.exeを使用して実行します(たとえば、cscript.exe d:\scripts\logRetentionScript.vbs
)。
サーバーでスケジュールされたタスクを作成します。アクションセクションでは、次のようにします。
それを毎日または毎週のスケジュールを与えます。できました。