$file_contents = file(llogfile);
Этот массив просматривается циклически, каждая строка передается функции tokenizeLine(), а затем инкрементируется счетчик каждого кода статуса:
foreach ($file_contents as $line) { $info„array = tokenizeLine($line); $status_code[$info_array['StatusCode']]++;
)
Затем сценарий создает текст сообщения электронной почты и отправляет его администратору:
$email = "Summary of codes for todays logs\n\nCode\tCount\n";
foreach ($status_codЈ as $code => Scount) { $email .= "$code:\t$count\n";
}
mail($admin_email, "Summary of weblogs", Semail);
?>
Для облегчения трудов автоматизируем запуск этого сценария, чтобы он ежедневно выполнялся в полночь. Под Linux мы воспользуемся сгоп, а под Windows NT/2000 - командой AT. Начнем с сгоп.
сгоп
Демон сгоп предоставляет возможность автоматизации заданий под Linux/ UNIX. Демон сгоп просматривает каждую минуту файл crontab каждого пользователя и проверяет, не надо ли выполнить какие-нибудь действия. Системный администратор (или любой пользователь) может автоматизировать с его помощью такие задачи, как запуск приведенного сценария.
В записи crontab шесть полей. В первых пяти задается время, в которое должно производиться действие, а в последнем - команда, которую должен выполнить демон сгоп, В каждом из полей времени задается значение, которое при сравнении должно соответствовать текущему системному времени, чтобы команда была выполнена. Поле может содержать звездочку (*), и тогда команда выполняется всегда, если все остальные поля соответствуют.
В первом поле задается количество минут после начала часа во времени
выполнения команды. Во втором поле задается час суток в третьем -
день месяца (1-31), в четвертом - месяц года (1-12) и в пятом - день недели (0—6, где 0 соответствует воскресенью). Более подробную информацию о команде можно найти на
Мы хотим, чтобы сценарий выполнялся каждую полночь. Если сценарий называется mail_stats. php и расположен в каталоге /home/j moo re/, то задача решается при помощи следующей записи в crontab:
О 0 * * * /usr/local/bin/php -q /home/jmoore/mail_stats.php
Эта запись сообщает демону or on, что когда час и минута одновременно равны 0 в любой день любого месяца, должна быть выполнена команда /usr/lo-
cal/bin/php -qmail_stats. php.
В оболочке Linux/UNIX можно сделать файл сценария исполняемым, установив для него требуемые права доступа (обычно командой chmod а+х иа- il stats. php, уточнить можно в системной документации). Затем введите команду, с помощью которой оболочка должна выполнить сценарий, в первую строку этого сценария. Например, #! /usr/local/bin/php -q. Это сообщает оболочке, что надо выполнить сценарий с помощью выполняемого модуля /usr/local/bin/php с флагом -q.