#!/usr/bin/php4 -qC ------------------------------------------------------------------------------- $Id$ -----------------------------------------------------------------------------*/ //YATTA LOG {{{ function yatta_log ($texto) { GLOBAL $YATTA_SERVER; GLOBAL $FH; $linea = strftime("%b %e %H:%M:%S").' '.$YATTA_SERVER['name'].' '. $YATTA_SERVER['script'].'['.$YATTA_SERVER['pid'].']: '. $texto ."\n"; fwrite($FH, $linea); } //}}} //Leo el archivo de configuracion {{{ $CONF = parse_ini_file(dirname(__FILE__) . '/configuracion.ini', true); //}}} //ABRO EL ARCHIVO DE LOG {{{ //Como root: //# touch /var/log/apache/YATTA_Tacho.log //# chown root.www-data /var/log/apache/YATTA_Tacho.log //# chmod 660 /var/log/apache/YATTA_Tacho.log if (!($FH = fopen ($CONF['tacho']['log'], "a"))) { trigger_error("No se pudo abrir el archivo de log. Se detiene el script.", E_USER_ERROR); } //}}} //REQUIRE ONCE {{{ require_once 'PEAR.php'; require_once 'YATTA/DB.php'; require_once 'YATTA/Controlador.php'; require_once 'YATTA/Servidor.php'; require_once 'Date.php'; require_once 'Date/Span.php'; //}}} //CREO UNA CONEXION MYSQL{{{ $db = YATTA_DB::connect($CONF['db']); if (DB::isError($db)) { trigger_error($db->getMessage(), E_USER_ERROR); } //}}} //CREO LOS OBJETOS NECESARIOS {{{ $CONTROLADOR =& new YATTA_Controlador; $SERVIDOR =& new YATTA_Servidor; //}}} //OBTENGO LOS DATOS DEL SERVER {{{ $YATTA_SERVER['path_tacho'] = $CONF['tacho']['repositorio']; $YATTA_SERVER['script'] = $argv[0]; $YATTA_SERVER['pid'] = getmypid(); $YATTA_SERVER['name'] = substr(file_get_contents('/etc/hostname'), 0, strpos (file_get_contents('/etc/hostname'), "\n")); $YATTA_SERVER['id'] = $SERVIDOR->obtenerId($db, $YATTA_SERVER['name']); if (PEAR::isError($YATTA_SERVER['id'])) { trigger_error('Error: ' . $YATTA_SERVER['id']->getMessage() . "\n", E_USER_ERROR); } yatta_log ('*************** Comienzo Ejecución ***************'); //}}} //BORRO LOS ARCHIVOS CON MAS DE N DIAS {{{ if ($dh = opendir($YATTA_SERVER['path_tacho'])) { while (false !== ($fh = readdir($dh))) { if ($fh != '.' && $fh != '..' && !in_array($fh, split(',', $CONF['tacho']['ignorar']))) { $span =& new Date_Span ( new Date (filemtime($YATTA_SERVER['path_tacho'].$fh)), new Date ()); if ($span->greater(new Date_Span ( array ($CONF['tacho']['cantidad_dias'],0,0,0)))) { if (!unlink($YATTA_SERVER['path_tacho'].$fh)) { trigger_error("No se pudo borrar el archivo ".$YATTA_SERVER['path_tacho'].$fh, E_USER_ERROR); } } } } closedir($dh); } //}}} //VERIFICO LAS CUOTAS DE LOS USUARIOS{{{ //@TODO Verificar las cuotas de los usuarios y actuar como deba. //WHILEO POR USUARIO {{{ //HAY MAS DE LA CUOTA {{{ //BORRAR LOS ARCHIVOS MAS VIEJOS HASTA LLEGAR AL VALOR DE LA CUOTA. //ENVIAR UN EMAIL AVISANDO DE ESTO. //}}} //HAY MENOS DE LA CUOTA PERO SUPERA EL 80%{{{ //ENVIAR EMAIL SOBRE LA SITUACION Y AVISANDO QUE SI SE SUPERA LA CUOTA //LOS ARCHIVOS MAS VIEJOS SERAN BORRADOS HASTA CUMPLIR EL REQUERIMIENTO //DE TAMAÑO //}}} //}}} //}}} //CIERRO EL ARCHIVO DE LOG {{{ yatta_log ('*************** Finaliza Ejecución ***************'); fclose ($FH); //}}} ?>