Foros del Web » Administración de Sistemas » Software para Servers »

Tareas programadas, CRONTAB

Estas en el tema de Tareas programadas, CRONTAB en el foro de Software para Servers en Foros del Web. Hola a todos, espero que este sea el foro adecuado para postear mi consulta. En caso contrario les agradecería me indicasen en donde hacerlo. Sin ...
  #1 (permalink)  
Antiguo 28/06/2011, 02:36
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Pregunta Tareas programadas, CRONTAB

Hola a todos, espero que este sea el foro adecuado para postear mi consulta. En caso contrario les agradecería me indicasen en donde hacerlo.

Sin mas preámbulos paso a explicarles mi problema:

Tengo un servidor Cloud en el cual quiero que se ejecute una tarea programada. Quiero que cada X tiempo se ejecute un fichero.php el cual tiene una serie de funciones...etc.

Hasta aqui llego mas o menos bien....

- Me voy al PLESK PANEL
- Añado una nueva tarea programada
- Pongo los minutos, horas, etc....
- Pero cuando llego al Comando * pues no se bien que poner...

He probado con los siguientes comandos...

Código:
php-q httpdocs / automail.php
(info obtenida de http://daipratt.co.uk/crontab-plesk-php/)

Código:
curl http://domain.com/automail.php
Código:
curl http://domain.com/automail.php > /dev/null 2>&1
(info obtenida de http://kb.parallels.com/es/390)

y con alguno mas que no recuerdo... pero no me funciona....

El automail.php, osea, el fichero que quiero ejecuta lo que hace es enviarme un email al correo de pruebal. Funciona bien, ya que si lo ejecuto en la url me llega el email.

Les agradeceria cualquier tipo de ayuda!

Un saludo y gracias por su tiempo!
  #2 (permalink)  
Antiguo 28/06/2011, 03:00
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Tareas programadas, CRONTAB

Hola fbedia88, me parece que es un problea de ruta del intérprete de PHP. Creo que debes indicar la ruta completa, busca la documentación del server.
Además necesitas los permisos de ejecución adecuados, aunque supongo que si trabajas con PLESK, al indicar la tarea programada los permisos ya están asignados.
No tienes un problema con el programa o la tarea programada sino mas bien, de cómo hacerlos en tu servidor. Es muy dificil darte indicaciones porque es un tema muy específico y cada hosting es diferente, pero seguro que se envias un mail a soporte podrán ayudarte.
Salu2!
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 28/06/2011, 06:22
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Tareas programadas, CRONTAB

Los comandos son los siguientes:

php -q /ruta/completa/automail.php

curl -s http://domain.com/automail.php

Pruebalos primero sin agregar el /dev/null 2>&1

Si tienes acceso a consola puedes probarlo desde consola para ver si generan algún error
  #4 (permalink)  
Antiguo 30/06/2011, 03:39
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Pregunta Respuesta: Tareas programadas, CRONTAB

Gracias por sus respuestas!

Les informo:

Como me ha comentado Datacenter1, he probado los comandos desde consola. Se los detallo a continuacion:

Probando con "php -q http://www.xxx.com/automail.php":
Código:
[root@s15441778 ~]# php -q http://www.xxx.com/automail.php
Could not open input file: http://www.xxx.com/automail.php
Probando con "curl -s http://www.xxx.com/automail.php":
Código:
[root@s15441778 ~]# curl -s http://www.xxx.com/automail.php
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://www.xxx.com/automail.php">here</a>.</p>
<hr>
<address>Apache/2.2.3 (CentOS) Server at www.xxx.com Port 80</address>
</body></html>
Lo que creo que ocurre en esta ocasion, es que en la web tengo un certificado SSL instalado... aparte, tengo un .htaccess que hace que cualquiera que acceda a la pagina desde http:// sea redireccionado automáticamente al entorno seguro...

Pero bueno, pruebo lo siguiente
Código:
[root@s15441778 ~]# curl -s https://www.xxx.com/automail.php
y no devuelve nada...

Pero quitando el -s para que muestre las cabeceras me dice lo siguiente:
Código:
[root@s15441778 ~]# curl https://www.xxx.com/automail.php
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). The default
 bundle is named curl-ca-bundle.crt; you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
Y por ultimo probe con wget y me dio lo siguiente:
Código:
[root@s15441778 ~]# wget https://www.xxx.com/automail.php
--2011-06-30 11:24:31--  https://www.xxx.com/automail.php
Resolving www.xxx.com... 82.165.IP.IP
Connecting to www.xxx.com|82.165.IP.IP|:443... connected.
ERROR: cannot verify www.xxx.com's certificate, issued by `/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA':
  Unable to locally verify the issuer's authority.
To connect to www.xxx.com insecurely, use `--no-check-certificate'.
Unable to establish SSL connection.
[root@s15441778 ~]#
No se si el problema de todo es por el certificado... pero me huele que si.

Me pondre a investigar por papagoogle ahora mismo y a probar... pero bueno, les dejo aqui el post por si alguien me puede echar una mano... Cualquier comando o duda me dicen sin problema.

Saludos y gracias a todos!
  #5 (permalink)  
Antiguo 30/06/2011, 04:14
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Respuesta: Tareas programadas, CRONTAB

WTF??

Hola de nuevo! me respondo para informarles que encontre el comando correcto! pero aun hay problemas :(

Puse esto en consola wget https://www.xxx.com/automail.php --no-check-certificate (lo vi en la respuesta que me dio en la anterior ejecucion; post anterior)
Código:
[root@s15441778 ~]# wget https://www.xxx.com/automail.php --no-check-certificate
--2011-06-30 11:58:16--  https://www.xxx.com/automail.php
Resolving www.xxx.com... 82.165.IP.IP
Connecting to www.xxx.com|82.165.IP.IP|:443... connected.
WARNING: cannot verify www.xxx.com's certificate, issued by `/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)06/CN=VeriSign Class 3 Extended Validation SSL CA':
  Unable to locally verify the issuer's authority.
HTTP request sent, awaiting response... 200 OK
Length: 1 [text/html]
Saving to: `automail.php.1'

100%[======================================>] 1           --.-K/s   in 0s

2011-06-30 11:58:17 (32.6 KB/s) - `automail.php.1' saved [1/1]

[root@s15441778 ~]#
y tras esto, me llego al correo el email de prueba!!

Hasta aqui todo perfecto y maravilloso... lo siguiente que e echo ha sido ir al crotab y añadir ese comando tal cual:


Como ven esta el comando tal cual lo puse en consola.... es decir, que deberia funcionar... y ejecutarse cada 2 minutos!

Esperando... esperando... no me llega el email.
He reiniciado el servidor... pero me sigue sin llegar...

¿Alguien sabe que puede estar ocurriendo? ami se me hace raro que el comando funcione en consola... pero no se ejecute automáticamente en el crontab....

Saludos.
  #6 (permalink)  
Antiguo 30/06/2011, 07:20
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Tareas programadas, CRONTAB

El primer comando debe ser

php -q /home/user/www/archivo.php es la ruta absoluta no una url (por supuesto debes cambiar la ruta y archivo según la ubicación de tu script)

El crontab que has programdo es para que se ejecute cada hora a las 00:02, 01:02, 02:02, etc

si lo que deseas es que se ejecute cada dos minutos, cambia el 2 por */2

si funciona con wget en consola pero no en http, pueden pasar dos cosas, openbase_dir lo bloquea o wget no tiene permisos de ekecución para todos los usuarios

algo como chmod 755 /usr/bin/wget

también debes poner la línea cron de esta forma

wget -o --no-check-certificate "https://dominio.com/archivo.php"

Última edición por Datacenter1; 30/06/2011 a las 07:31 Razón: Más info
  #7 (permalink)  
Antiguo 30/06/2011, 07:41
Avatar de Datacenter1
Usuario no validado
 
Fecha de Ingreso: agosto-2005
Ubicación: Chicago
Mensajes: 1.982
Antigüedad: 18 años, 8 meses
Puntos: 144
Respuesta: Tareas programadas, CRONTAB

Mi commando wget esta errado (eso pasa cuando ejecutas comandos antes del cafe de la mañana :()

El correcto es:

Código:
wget -q -O /dev/null https://datacenter1.com/index.php
  #8 (permalink)  
Antiguo 01/07/2011, 04:45
Avatar de fbedia88  
Fecha de Ingreso: enero-2011
Ubicación: Santander
Mensajes: 83
Antigüedad: 13 años, 3 meses
Puntos: 20
Respuesta: Tareas programadas, CRONTAB

Muchas gracias a los dos!

Ya conseguí hacerlo.

Al final con el siguiente comando:

wget 'https://www.xxx.com/automail.php' --no-check-certificate

Supongo fuese por las comillas ' ' en la url. Ahora probare a hacerlo con una ruta absoluta para que solo pueda ser ejecutado por el crontab... pero bueno, de momento así me podría apañar!

Ya me llegan los correos a las horas programadas! al minuto exacto

Un saludo.

*EDITO.
Una cosa que se me ha olvidado preguntar
Cita:
si lo que deseas es que se ejecute cada dos minutos, cambia el 2 por */2
Podrías explicarme esto? no entiendo porque si quiero poner el envio cada 2 minutos tengo que poner */2
(En realidad no es cada 2 minutos, solo es una vez al dia... ya lo tengo implementado y funciona perfecto, pero bueno, me quedo esa dudilla)

Gracias nuevamente @Datacenter1
__________________
URGENTE! Alguien me puede ayudar con este tema??
http://www.forosdelweb.com/f57/tarea...rontab-924947/

Etiquetas: crontab, programadas, servidores-web, tareas
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 19:21.