Простая система кэширования на 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 строки запроса и если страниц много, то разбивалось по каталогам, называющимися первой буквой имени файла (это нужно, т.к. скорость доступа к большому количеству файлов в файловой системе при их большом количестве).

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

Дата: Март 31st 2009 Категория: Программирование

Подсчет ошибок в логе 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х колонок - МЕСЯЦ, ЧИСЛО, КОЛИЧЕСТВО ОШИБОК.

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

Дата: Март 31st 2009 Категория: Программирование

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

Нет комментариев »

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

Дата: Март 31st 2009 Категория: Проекты