Вот такой скрипт, все отлично, мониторит, на почту удобный результат со ссылками приходит, но... все портит куча файлов кэша, вот таких: cache_94afbfb2f291e0bf253fcf222e9d238e_08968af04fc5a564ed2ebba60b9be5be cache_7e65fe3e7f7c0341759408c8cae125a9_a91a77d39ebb296054ffa1e1b6713ace и т.п. все начинаются на "cache_", изза этой кучи кракозябров читать репорты практически невозможно и всякое желание пропадает. Полный код скрипта: PHP: <?php /////////////////////////////////////////////////////////////////////////// // Файл-чекер - автоматический мониториг изменений файлов сайта // // // // Воробьев Денис, 2005-2007 // // // // // FileChecker 2.1 by Denvor [url=http://denvor.ru]http://denvor.ru[/url] // /////////////////////////////////////////////////////////////////////////// set_time_limit(0); ignore_user_abort(); // Введите адрес (или адреса) электронной почты, куда будет отправляться уведомление // $to = "pupkin@mail.ru, [email=popkin@mail.ru]popkin@mail.ru[/email]"; $to = ""; //Введите тему присылаемого письма $subj = ""; // от кого письмо $from = ""; // URL сайта (для формирования ссылки на новые файлы) $url = ""; //введите имя файла, в котором будет хранится список каталогов // ВНИМАНИЕ! на некоторых хостингах (РБК) требуется прописать ПОЛНЫЙ путь к файлу от корня // например, /www/domen/users/sub-domen/www/htdocs/list $listfile = ""; // введите список файлов, изменения которых не нужно отслеживать GLOBAL $no_check,$total_size,$files,$folders; $no_check = array("list_port", "filepos", "Tree", "history", "ini"); // корневая директория сайта $root_dir = ""; /////////////////////////////////////////////////////////////////////////// //Все, дальше ничего менять не нужно ///////////////////////////////////// /////////////////////////////////////////////////////////////////////////// $total_size = $files = $folders = 0; $dir = opendir ($root_dir); scan_dir($root_dir); function scan_dir($dirname) { GLOBAL $arr; $dir = opendir($dirname); while (($file = readdir($dir)) !== false) { if($file != "." && $file != "..") { if(is_file($dirname."/".$file)) { if (!in_array($file, $GLOBALS['no_check'])) $arr[] = str_replace($root_dir,"../",$dirname)."/".$file." - ".date("m.d.y H:i:s",filemtime($dirname."/".$file))." - ".filesize($dirname."/".$file); $GLOBALS['files']++; $GLOBALS['total_size']+= filesize($dirname."/".$file); } if(is_dir($dirname."/".$file)) { $arr[] = $dirname."/".$file; $GLOBALS['folders']++; scan_dir($dirname."/".$file); } } } closedir($dir); } $list = fopen($listfile, "r+"); if ($list AND filesize($listfile)> 0) { $file = fopen($listfile,"r"); $bufer = fread($file,filesize($listfile)); fclose($file); $arr1 = unserialize($bufer); $arr2 = array_diff ($arr, $arr1); $arr3 = array_diff ($arr1, $arr); if ((count ($arr2) + count ($arr3)) ==0) { if ($id ==1) echo " Изменений файлов со времени последнего сканирования не обнаружено!<br>"; } else { $mess1 = " ====== Новые файлы и новые параметры файлов: ====== <br>\n"; if ($id ==1) $mess1.="<br>"; foreach($arr2 as $val) { $val1 = substr ($val, 1); if (substr($val1,0,1)==".") $val1=substr($val1,1); if (substr($val1,0,1)==".") $val1=substr($val1,1); $val1 = str_replace($root_dir, "", $val); $val1 = "<a href=$url$val1 target=_blank>".$val1."</a><br>"; $mess1 = $mess1."$val1 \n"; } $mess2 = "<br>\n\n ====== Удаленные файлы и старые параметры файлов: ====== <br>\n"; foreach($arr3 as $val) { $mess2 = $mess2."$val <br>\n"; } $mess = $mess1.$mess2; if (((1024*1024) > $total_size) && ($total_size > 1024)) $size = (round($total_size /1024))."K"; else if ($total_size > (1024*1024)) $size = (round($total_size / 1024 /1024))."M"; $mess.= "== \nОбщий обьем файлов: $size ($total_size байт), всего файлов: $files,папок: $folders =="; if ($id == 1) echo $mess; $subj =convert_cyr_string (stripslashes($subj),w,k); $headers = "MIME-Version: 1.0\n"; $headers .= "From: $from\n"; $headers .="Content-type: text/html; charset=windows-1251"; mail ($to, $subj, $mess, $headers); $str = serialize($arr); $file = fopen($listfile,"w"); fwrite($file,$str); fclose($file); } } else { $str = serialize($arr); $file = fopen($listfile,"w"); fwrite($file,$str); fclose($file); } ?> Интересует вот это место, как правильно задать маску файлов, чтобы исключить весь кэш из мониторинга, а еще вопрос - можно ли добавить в исключение целую директорию? PHP: // введите список файлов, изменения которых не нужно отслеживать GLOBAL $no_check,$total_size,$files,$folders; $no_check = array("list_port", "filepos", "Tree", "history", "ini"); Выручайте плиз, какой-то нехороший чел уже раза три лил нам шелл, а потом ворох говноссылок, а так как времени нет каждый день следить, то всякий раз замечал слишком поздно, логи стерты, никак не могу его отследить как он заходит.