Foros del Web » Programando para Internet » PHP »

problema tuberias y cron

Estas en el tema de problema tuberias y cron en el foro de PHP en Foros del Web. hola gente, el script si lo ejecuto desde la terminal me funciona bien y retorna los valores pero cuando lo ejecuta cron, no retorna valores, ...
  #1 (permalink)  
Antiguo 29/12/2011, 11:18
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
problema tuberias y cron

hola gente, el script si lo ejecuto desde la terminal me funciona bien y retorna los valores pero cuando lo ejecuta cron, no retorna valores,

la funcion:

Código PHP:
  function Revisa_Cuadernos($api_key$cookie$CRR_Cuaderno$TIP_Causa$Rol_Causa$Cod_Tribunal)
  {
    
$this->init($api_key);
    if(
$this->fSocket)
    {
    
    
$tuberia proc_open("php pipe_threads.php $api_key $CRR_Cuaderno $cookie $TIP_Causa $Rol_Causa $Cod_Tribunal",
                         
      array(
        array(
"pipe","r"), //stdin
        
array("pipe","w"), //stdout
        
array("pipe","w")  //stderr
      
),
      
$pipes);
    
    
$salida_pipe stream_get_contents($pipes[1]);
    
fclose($pipes[0]);
    
fclose($pipes[1]);
    
fclose($pipes[2]);
    
$retorno_pipe proc_close($tuberia);
        
    return 
json_decode($salida_pipe);
    
    }
 return 
0;    


la tuberia "pipe_threads.php"

Código PHP:
$cookie $argv[3];
$CRR_Cuaderno explode("_"$argv[2]);
$TIP_Causa explode("_"$argv[4]);
$Rol_Causa $argv[5];
$Cod_Tribunal $argv[6];


// realiza la llamada al cuaderno

$url_cuadernos "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do?";

$rol_data explode("-"$Rol_Causa);

$url "http://civil.poderjudicial.cl/CIVILPORWEB/AtPublicoDAction.do";  

$total_cuadernos count($CRR_Cuaderno);

$curl_arr = array();
$master curl_multi_init();

for(
$i 0$i $total_cuadernos$i++)
{
  
$data = array();
  
$data['TIP_Causa'] = $rol_data['0'];
  
$data['ROL_Causa'] = $rol_data['1'];
  
$data['ERA_Causa'] = $rol_data['2'];
  
$data['COD_Tribunal'] = $Cod_Tribunal;
  
  
$data['TIP_Cuaderno'] = $TIP_Causa[$i]; 
  
  
$data['GLS_Cuaderno'] = "cualquier_cuaderno";
  
$data['CRR_IdCuaderno'] = $CRR_Cuaderno[$i]; 
  
$data['TIP_Informe'] = "1";
  
$data['FLG_Caratula'] = "0";
  
$data['TIP_Cargo'] = "3";
  
$data['COD_Corte'] = "null";
  
$data['FLG_ImpresionTribunal'] = "1";
  
$data['CRR_Cuaderno'] = $CRR_Cuaderno[$i];
  
$data['irAccionAtPublico'] = "Ir+a+Cuaderno";
  
$data['FLG_Vuelta'] = "null";
  
  
$cuaderno_data $mc->compile_post_data($data);    
  
  
$curl_arr[$i] = curl_init($url);
  
curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFERtrue);
  
curl_setopt($curl_arr[$i], CURLOPT_POST1);
  
curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS$cuaderno_data);
  
curl_setopt($curl_arr[$i], CURLOPT_COOKIEFILE$cookie);
  
curl_setopt($curl_arr[$i], CURLOPT_FOLLOWLOCATION  ,1);
  
curl_multi_add_handle($master$curl_arr[$i]);
  
}

// inicio del multi threading ------------------------------------------------------------------------------------------------------------------------    

  
do {
      
$mrc curl_multi_exec($master$threads);
  } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
  
  while (
$threads && $mrc == CURLM_OK) {
      if (
curl_multi_select($master) != -1) {
          do {
              
$mrc curl_multi_exec($master$threads);
          } while (
$mrc == CURLM_CALL_MULTI_PERFORM);
      }
  }

// busqueda coincidencias en los cuadernos -------------------------------------------------------------------------------------------------------------    

if($cierre_bucle != true):

    for(
$i 0$i $total_cuadernos$i++)
    {
      
$results curl_multi_getcontent  $curl_arr[$i]  );
    
      
curl_multi_remove_handle($master$curl_arr[$i]);
      
curl_multi_close($master);
    
    
// buqueda de fechas en el cuaderno
    
      
$fechas_arr = array();
      
$fechas_arr $mc->MuestraFecha($results);
      
    
// Nombre del Cuaderno
    
      
$nombre_cuaderno $mc->Nombre_Cuaderno($results);
    
    
// Archivo asociado al movimiento de la causa    
    
      
$attachment $mc->Archivo_Movimiento($results);
      
    
// Busqueda de la fecha actual dentro de las fechas del cuaderno
        
     
$fecha_actual date("d/m/Y");
    
     
$fecha_menos96hs date('d/m/Y',time()-(4*24*60*60)); // 4 dias
     
$fecha_menos72hs date('d/m/Y',time()-(3*24*60*60)); // 3 dias
     
$fecha_menos48hs date('d/m/Y',time()-(2*24*60*60)); // 2 dias
     
$fecha_menos24hs date('d/m/Y',time()-(24*60*60)); // 1 dia
                
     
if(array_search($fecha_actual$fechas_arr) === 0):
          
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
          
$movimiento_bol "TRUE";    
          
$fecha_mov $fecha_actual;
          
$archivo_mov_causa $attachment;
          
$debug "La fecha actual es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
          
$cierre_bucle true;
     endif;
    
    
     if(
array_search($fecha_menos24hs$fechas_arr) === 0):               
          
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
          
$movimiento_bol "TRUE";        
          
$fecha_mov $fecha_menos24hs;
          
$archivo_mov_causa $attachment;    
          
$debug "La fecha de ayer es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
          
$cierre_bucle true;
     endif;
    
    
     if(
array_search($fecha_menos48hs$fechas_arr) === 0):
          
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
          
$movimiento_bol "TRUE";        
          
$fecha_mov $fecha_menos48hs;
          
$archivo_mov_causa $attachment;                    
          
$debug "La fecha antes de ayer es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
          
$cierre_bucle true;
     endif;
    
    
     if(
array_search($fecha_menos72hs$fechas_arr) === 0):
          
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
          
$movimiento_bol "TRUE";        
          
$fecha_mov $fecha_menos72hs;
          
$archivo_mov_causa $attachment;
          
$debug "La fecha hace 3 dias es el primer elemento del cuaderno: " .$cuaderno"\r\n";        
          
$cierre_bucle true;
     endif;
    
    
     if(
array_search($fecha_menos96hs$fechas_arr) === 0):
          
$cuaderno utf8_encode(substr($nombre_cuaderno,2,-2));
          
$movimiento_bol "TRUE";        
          
$fecha_mov $fecha_menos96hs;
          
$archivo_mov_causa $attachment;                    
          
$debug "La fecha de hace 4 dias es el primer elemento del cuaderno: " .$cuaderno"\r\n";    
          
$cierre_bucle true;
     endif;
    
      
      
$BYTES_CUADERNO strlen($results);
      
$total_bytes $total_bytes $BYTES_CUADERNO;
      
    }
endif;

$ret = array('total_bytes_cuadernos' => $total_bytes,
             
'cuaderno' =>$cuaderno,
             
'movimiento_bol' => $movimiento_bol,
             
'fecha' => $fecha_mov,
             
'archivo_mov_causa' => $archivo_mov_causa,
             
'debug' => $debug);


//$ret = array($cookie, $CRR_Cuaderno, $TIP_Causa, $Rol_Causa, $Cod_Tribunal);

echo json_encode($ret);
?> 
no logro comprender del por que este funcionamiento, alguna sugerencia?

gracias.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #2 (permalink)  
Antiguo 29/12/2011, 11:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema tuberias y cron

Yo creo que la pregunta sería, ¿como ejecutas el mismo script desde cron y consola?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/12/2011, 11:31
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

cual es la diferencia?
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #4 (permalink)  
Antiguo 29/12/2011, 11:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema tuberias y cron

Cita:
Iniciado por cadrogui Ver Mensaje
cual es la diferencia?
Eso es lo que yo te estoy preguntando.

Muestra el comando que usas con el CRON y muestra el comando que usas con la terminal.

¿Hay diferencias?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/12/2011, 11:37
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

cron:

php -f /home/legalint//rob/robot_LegalInt.php

terminal

php -f /home/legalint//rob/robot_LegalInt.php

he notado que si desde la consola ejecuto el script el otro directorio no corre, pero si lo ejecuto desde el mismo directorio donde esta el script funciona, pero en cron nada, para ver el tema del directorio hice un chmod +x a un archivo rob

rob -run

donde el argumento run hace cd directorio del script y el php -f /home/legalint/public_html/robot/robot_LegalInt.php


y cuando corri desde cron /usr/local/bin/robot -run, me dijo esto: TERM environment variable not set.
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #6 (permalink)  
Antiguo 29/12/2011, 12:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema tuberias y cron

Ejecuta `php -i` desde CRON y terminal para comparar ambos resultados.

Es posible que como estás ejecutando desde tu usuario en la terminal se precargue un environment diferente al que se carga bajo el usuario de los CRONjobs.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 29/12/2011, 12:17
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

http://www.legalintelligence.cl/tmp/
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #8 (permalink)  
Antiguo 29/12/2011, 12:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema tuberias y cron

¿Por qué desde el cron devuelve el phpinfo() como HTML?

Eso no debería ser así, para empezar.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 29/12/2011, 12:27
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

Ni idea....
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #10 (permalink)  
Antiguo 29/12/2011, 12:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema tuberias y cron

Pues por ahí debes comenzar a indagar, no es normal que desde la consola te de un resultado para consola y desde el cron (que debe ser consola también) te entregue el HTML como si fuera la versión CGI y no CLI de php.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 29/12/2011, 12:32
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

Ok investiga ese tema y te cuento

Muchas gracias
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl
  #12 (permalink)  
Antiguo 01/01/2012, 14:01
Avatar de cadrogui  
Fecha de Ingreso: junio-2003
Mensajes: 875
Antigüedad: 20 años, 10 meses
Puntos: 5
Respuesta: problema tuberias y cron

Tengo esta info: PHP is running as CGI module. Tengo que recompilar php como modulo de apache?

Gracias
__________________
La mejor manera de aprender es por medio de un aprendizaje significativo....

http://www.cocert.cl

Etiquetas: cron
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




La zona horaria es GMT -6. Ahora son las 17:14.