Архив за день: 2009-03-31

Простая система кэширования на php

<?

$cacheFile = ‘cache.html’;

if ( (file_exists($cacheFile)) && ((fileatime($cacheFile) + 600) > time()) )
{
$content = file_get_contents($cacheFile);
echo $content;
} else
{
ob_start();
// write content
echo ‘

Hello world to cache

‘;
$content = ob_get_contents();
ob_end_clean();
file_put_contents($cacheFile,$content);
echo $content;
}
?>

Это конечно все очень просто, для доработки надо чтобы название файла созадавалось как md5 строки запроса и если страниц много, то разбивалось по каталогам, называющимися первой буквой имени файла (это нужно, т.к. скорость доступа к большому количеству файлов в файловой системе при их большом количестве).

Я доработал такой алгоритм и скоро опубликую его.

Подсчет ошибок в логе messages.log

Сегодня понадобилось подсчитать количество ошибок по превышению температуры процессора. Данные находятся в messages.log.

Самое простое решение — это написать простенький perl скрипт, который бы брал месяц, число и считало количество появления ошибок в хеше.

Скрипт получилося такой:

 

#!/usr/bin/perl

$filename=’mess4.log’;

open FH,$filename or die $!;

while (<FH>) {

    ~/(\w+)\s*(\d+)\s+(\d+):/;

  #  print «$1 $2 $3\n»;

   if (exists($stat{«$1 $2»})) {$stat{«$1 $2»}+=1;} else { $stat{«$1 $2»}=1;}

}

while (($data,$count)=each(%stat)){

    print «$data\t$count\n»;

}

 

Результат — вывод двух из 3х колонок — МЕСЯЦ, ЧИСЛО, КОЛИЧЕСТВО ОШИБОК.

Скрипт очень прост, поэтому вывод нужно запихнуть в ексель и отсортировать по-человечески. Конечно все это можно сделать в скрипте, но на это пока нет времени.

Выносим граббер инфанаты на сервер.

Сегодня вынес скрипты граббинга инфанаты с локальной машины в интернет на хостинг. Это позволить постоянно мониторить появление новых описаний, да и увеличит скорость обращения к инфанате.