簡単な PHP スクリプトを cron ジョブとして実行しています。その目的は、Web ページのヘッダーをチェックし、さまざまな項目が変更されたかどうかを報告することです。
過去にこのスクリプトのさまざまなバージョンを使用してきましたが、常に正常に機能していましたが、現在は、スクリプトが 100Mb を超えるメモリを使用している場合に電子メールで警告を送信するサーバーで使用しています (もちろん、ホワイトリストに登録されたスクリプトは別として)。 )、驚くべきことに、私のヘッダー チェック スクリプトは、少なくとも 1 日に数回、大量のメモリ使用量を報告することがあります。
スクリプトは 5 分ごとに実行されており、メモリの問題は 1 日に 5 ~ 6 回発生しています。自然に解決しているように見えますが、このような単純な作業のためにこの大量のメモリを時々使用しないようにしたいと考えています。
警告メールでは、この単純なスクリプトで約 290Mb の使用量が報告されています。
<?php
$message = "";
function array_find ($needle, $haystack, $search_keys = false) {
if (!is_array($haystack)) return false;
foreach ($haystack as $key => $value) {
$what = ($search_keys) ? $key : $value;
if (strpos($what, $needle) !== false) return $key;
}
return false;
}
$url = 'http://www.EXAMPLE.com/';
$haystack = get_headers($url);
$needle = "PHPSESSID";
if (!((array_find($needle, $haystack)) != '')) {
$message .= "No PHPSESSID in headers";
}
if (!(strpos($haystack[0], '200'))) {
$message .= "No 200 OK";
}
if ($message != '') {
mail("example@example.com", "Headers Changed", $message, "From: Example <example@example.com>");
}
exit;
?>
サーバーは、CENTOS 5.8、Apache 2.2.16、PHP 5.3.3 を実行する VPS です。
ご協力ありがとうございます。