Foros del Web » Programando para Internet » PHP »

Problemas con script php y cron (Linux)

Estas en el tema de Problemas con script php y cron (Linux) en el foro de PHP en Foros del Web. Hola a todos No estaba seguro si postear esto en el foro de php o en el de Linux, asi que lo postee en los ...
  #1 (permalink)  
Antiguo 26/01/2012, 16:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Problemas con script php y cron (Linux)

Hola a todos

No estaba seguro si postear esto en el foro de php o en el de Linux, asi que lo postee en los dos para ver si alguien me puede ayudar.
Les cuento un poco de que trata:

Tengo un archivo php que quiero ejecutar en el cron de Linux, este php se encarga de obtener el estado de distintos servicios como base de datos, correo, particiones de disco, etc. y guardarlos en una base de datos.

El problema es el siguiente:
Cuando ejecuto el script en el navegador funciona sin ningun tipo de problema. Cuando lo ejecuto por linea de comandos con putty (php -f /home/andres/public_html/systemmonitor/testcron.php) tambien funciona sin problemas. Pero cuando este php se ejecuta en el cron por alguna razon hay una funcion del script que al parecer no se ejecuta bien, esta funcion que presenta problemas es la que se encarga de obtener la fecha del ultimo registro de una base de datos oracle, al ejecutarse en el cron obtiene esto 00-00-0000 00:00:00.

Es realmente extraño porque ni en el navegador ni en linea de comando me lanza ningun tipo de error o warning. He revisado todo el script y no tiene nada extraño, incluso cree un archivo aparte de prueba donde solo tengo la funcion que se encarga de hacer la funcion que tiene problemas, pero es lo mismo que les comentaba (funciona en navegador y en linea de comandos pero no en cron). Probe con dos funciones para ver si era algun problema de compatibilidad o algo por el estilo, probe con oci_connect y con la libreria ADODB, pero obtengo el mismo resultado. Ya no se que hacer, espero puedan ayudarme. Aqui les dejare el codigo php que ejecuto y la linea que se ejecuta en crontab.

La distribucion que tiene el servidor es: CentOS 5.7
Linea de crontab: */15 * * * * php -f /home/andres/public_html/systemmonitor/testcron.php >/dev/null 2>/dev/null

Script PHP:
Código PHP:
require('db.config.php');
require(
'db.configoracle.php');
require(
'model/EstadoProveedor.php');

$connOracle = new DbConfigOracle();
$conOracle $connOracle->connect();


if(
$datos $conOracle->Execute("SELECT PROVIDER, to_char(LOC_DATE,'YYYY/MM/DD HH24:MI:SS') as LOC_DATE FROM THEMIS.CLG_V_LAST_PROV_LOC WHERE PROVIDER = 'CLS'")){
    
$dato $datos->FetchRow();
    
$ultimoDatoBD $dato['LOC_DATE'];
    
    
$connOracle->close();
}
    
    
$conn = new DbConfig();
    
$con $conn->connect();
    
    
$estado_proveedor = new EstadoProveedor();
    
    
$estado_proveedor->ultimo_correo date("Y/m/d H:i:s");
    
$estado_proveedor->ultimo_dato_bd $ultimoDatoBD;
    
$estado_proveedor->fecha date("Y/m/d H:i:s");
    
$estado_proveedor->fecha_creacion date("Y/m/d H:i:s");
    
$estado_proveedor->proveedores_id_proveedor 1;
                    
    
$estado_proveedor->save();
    
    
$conn->close(); 
Ojala puedan ayudarme.
De antemano muchas gracias
  #2 (permalink)  
Antiguo 26/01/2012, 17:07
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: Problemas con script php y cron (Linux)

Ok, me parece raro.. suena a que ALGO no se y por lo tanto te devuelve ese resultado, pero ni idea de que sea. Lo que se me ocurre que puedes probar es cambiar tu cronjob, para que en lugar de php -f uses wget, como si llamaras la pagina desde el navegador.
inicializa
Aqui viene un ejemplo de como seria: http://drupal.org/node/23714
__________________
Sin Ideas
  #3 (permalink)  
Antiguo 27/01/2012, 07:49
 
Fecha de Ingreso: agosto-2010
Mensajes: 19
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Problemas con script php y cron (Linux)

Funciono a la perfeccion!

Al final quedo asi:

*/15 * * * * wget -O - -q -t 1 http://192.168.5.11/andres/systemmonitor/cron.php

Muchas gracias, me has salvado la vida.

Etiquetas: cron, html, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:05.