【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜 / 徳島】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【200ヶ国以上に対応】グローバル eSIM「ビヨンドSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【中国への旅行・出張・駐在なら】中国SIMサービス「チョコSIM」

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【グローバル専用サービス】北米・中国でも、ビヨンドのMSP

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

WindowsのApacheのログローテートでログを削除する方法

インフラエンジニアの伊藤です。

LinuxのApacheのログのローテーション設定については、logrotateで行っています。

ログローテーションについてはこちらをご参照ください。
ログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 ) | レンタルサーバー・自宅サーバー設定・構築のヒント

そういえばWindowsのログローテーションってどうやってるんだろう、と調べてみると、
WindowsのApacheに付属している「rotatelogs.exe」でログのローテーションをしていますが、削除は出来ないようです。

ローテーション後の古いログの削除方法についてです。

Apacheのログ設定を確認する

Apacheのログファイルの出力設定を「httpd.conf」にて設定します。
ログの出力を1日ごとに設定変更します。

#元々の設定
   ErrorLog "|bin/rotatelogs.exe logs/error-%Y%m%d-%H.log 10M -l"
   CustomLog "|bin/rotatelogs.exe logs/access-%Y%m%d-%H.log 10M -l" common

#設定変更後
   ErrorLog "| bin/rotatelogs.exe logs/error_%Y%m%d.log 86400"
   CustomLog "| bin/rotatelogs.exe logs/access_%Y%m%d.log 86400" common

元々の設定が「ログが10MBに達するとローテーション」となっているので、
「86400秒(1日)経過するごとにローテーション」の設定にします。

Linuxであれば設定をしてあげればlogrotateがログの削除までしてくれますが、
Windowsの場合はここから一工夫が必要になります。

バッチファイルを作成する

バッチファイルを作成し、バッチを定期的に実行することで、ローテーションされた古いファイルを削除することが可能です。

forfiles /P "D:\Apache\logs" /D -7 /C "cmd /c del @file"

「forfiles」コマンドで、条件に合うファイルを抽出します。
各引数の意味については以下になります。

引数 説明
/P 対象のパス
/D ファイルの更新日付に基いて抽出(-7なら7日前)
/C 出力したファイルに対して、別コマンドを実行する(この場合はcmdコマンド)
@file 抽出したファイルの変数(@extなら抽出したファイルの拡張子を表す変数となる)

このようなバッチファイルを作成してタスクスケジューラに登録することで、
ローテーションしたファイルから、x日前のファイルを消すことが可能になります。
また、delコマンドでなく圧縮のコマンド(7zip等が必要になりますが)を使うことで、
古いログを圧縮することも可能です。組み合わせは無限大ですね。

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
1
読み込み中...
1 票, 平均: 1.00 / 11
21,044
X facebook はてなブックマーク pocket
【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【2025.6.30 Amazon Linux 2 サポート終了】Amazon Linux サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author