【PHP】HTTPDの溜まりきったログを一気に削除する方法
サーバー運用代行先で、スパム業者からのアクセスなどが原因で、HTTPDのログが大量生成され、サーバーダウンしてしまう・・・という、悪質な状況に悩まされていました。
ログを手動で解析したり、削除したりするのがめんどくさくなってきたので、自動で、過去ログを削除するプログラムをPHPで組みました。
なお、$pathを変更して、別のディレクトリに適用させたりすると、場合によっては一撃死したりするので、取り扱いには十分気を付けて下さい(爆)
access_logや、error_logなどのファイルは削除せずに、access_log-20141028などの、日付付きのファイルを削除するようにしています。
<?php
$path = "/var/log/httpd/";
$dirs = scandir($path);
foreach($dirs as $dir){
if($dir == "." || $dir == ".."){continue;}
if(preg_match("/[0-9]/", $dir)){
unlink($path.$dir);
echo "deleted {$path}{$dir}.\n";
}
}
?>
$path = "/var/log/httpd/";
$dirs = scandir($path);
foreach($dirs as $dir){
if($dir == "." || $dir == ".."){continue;}
if(preg_match("/[0-9]/", $dir)){
unlink($path.$dir);
echo "deleted {$path}{$dir}.\n";
}
}
?>
あとは、crontabで、
0 0 * * * php /path/to/delete_log.php
みたいにしておけば、一日に一回、自動削除されます。
これで、安眠できる・・・。
この記事の最終更新日:2019/03/11
最初に記事を書いた日:2018/11/06
この記事をシェアする
関連記事
- ・hosts.denyを使わずに、サーバーへの全てのアクセスをIPアドレス拒否する方法
- ・「.well-known」以下をwwwにリダイレクトさせない方法
- ・【格安VPN】NordVPNは本当に安全なのか?【閲覧履歴ダダ漏れw】
- ・「root@notty」って何者?
- ・アクセス解析ツール「awstats」をCentOSにyumでインストールする
- ・Kali LinuxをVagrantにインストールする
- ・【Tomcat】Apache+Tomcat連携で、特定のディレクトリのみTomcatにする方法
- ・Macでトンネル接続してFTP/SFTP接続する簡単な方法
- ・【.htaccess】httpアクセスをhttpsに強制リダイレクトで、特定のファイルやディレクトリを除外する方法
- ・【Linux】DNSの向けられていないテストサーバーで、テスト証明書を3分以内に発行する方法