Jump to content

[SOLUCIONADO] Establecer una norma CRON que llamará al archivo ...modules/birthdaypresent/cron.php todos los días.


Dimar

Recommended Posts

Hola a todos.

En la configuración del modulo de cumpleaños, para regalar en el cumpleaños de un cliente un porcentaje de descuento o por cantidad o el envio gratis, cuando voy a configurarlo, hay una parte que dice:

Adicionalmente, usted tiene que establecer una norma CRON que llamará al archivo ../modules/birthdaypresent/cron.php todos los días.

Alguien me puede explicar que significa eso por fa?? no entiendo lo de la norma CRON lo busque por google pero nada.

Gracias

Link to comment
Share on other sites

Hola Dimar, el Crontab en linux viene a ser un equivalente a tareas programadas de "windows" lo que hace una vez añadida la regla es ejecutar diariamente el fichero /modules/birthdaypresent/cron.php para que busque los usuarios que cumplen años y les envíe un mail informativo.. para establecerlo debes entrar en tu panel de control de tu cuenta hosting y localizar tareas cron después tendrás que programar la tarea según el ejemplo que te pongo..

0 0 * * *       /prestashop/modules/birthdaypresent/cron.php

- este ejecuta el fichero a las 12 de la noche cada día. ¡¡ Especifica correctamente la ruta al archivo ya que la carpeta /prestashop/... puede tener otro nombre en tu sistema.!!. un saludo TECNILOCO.

Link to comment
Share on other sites

  • 1 year later...

Hola!

Yo estoy intentando configurar el crontab de cumpleaños también y he hecho lo que tecniloco propone pero recibo el siguiente mail de error:

/bin/sh: http://XXXXXX/modules/birthdaypresent/cron.php: No such file or directory

¿alguien sabe cómo solucionarlo??? gracias!!!


________________________

Hi!

I'm also trying to configure the crontab for the birthday present module. I've tried what tecniloco proposes but I get this error message:

/bin/sh: http://XXXXXX/modules/birthdaypresent/cron.php: No such file or directory

any ideas? thanks!!!

Link to comment
Share on other sites

Hola tecniloco,

El cron no tiene los dos puntos finales (:), eso solamente me salía en el correo que recibí de error.

Yo tenía configurado el cron así:

Cron: 0 0 * * *
command: http://itacatemexicano.com/modules/birthdaypresent/cron.php

Pero encontré en otros posts que proponen poner esto delante de la url para que se ejecute:

fetch -q http://itacatemexicano.com/modules/birthdaypresent/cron.php

http://www.prestashop.com/forums/viewthread/71126/general_discussion/how_to_fix_the_birthday_present_module/

veré si esto funciona...

Ya lo probé y tampoco funcionó. Ahora me sale este otro mensaje de error:
/bin/sh: fetch: command not found

quitaré esto de fetch -q y probaré otra vez...

gracias!


CREO QUE YA LOGRÉ SOLUCIONARLO.

Encontré estas instrucciones en mi host.

- Execute a file directly via web - this would be the same as opening the http://my-best-domain.com/test.php in your web browser, but using a cronjob function instead. The command in this case would be:

TERM="xterm"; /usr/bin/lynx -dump http://my-best-domain.com/test.php

probé colocando lo que está en negritas antes de la dirección http y recibí un mail de ok. Ahora solamente me falta comprobar que los mails sí se estén enviando correctamente...

Link to comment
Share on other sites

  • 4 weeks later...

Hola a todos, ando por aquí buscando info de Prestashop y he leído este post, soy programador senior con Drupal y os recomiendo leer esto para entender mas aspectos del cron:

http://drupal.org/cron

El problema de que no funcione el ejemplo que pone tecniloco es que no se puede llamar a un archivo php directamente desde la shell si no usas el binario de php, vamos en cristiano que tienes que ejecutar '/bin/php -f ruta/archivo.php'

Leerlos el link que puse que vienen distintas formas de ejecutar un cron.php desde linux bash junto con la explicación de los asteriscos delanteros, yo recomiendo curl aunque puede que wget o lynx también funcione en vuestro hosting.

Saludos.

Link to comment
Share on other sites

  • 9 months later...

Buenas tardes.

 

¿Alguien sabría decirme como introducir en el cron una instrucción para que cada cierto tiempo se indexaran los archivos de Prestashop?

 

El ejemplo que os voy a poner es como estoy intentando que lo realice pero no hace nada de nada y no se que estoy haciendo mal:

 

*/1 * * * * /bin/php -f /var/www/nombre de la carpeta admin de prestashop/searchcron.php?&token=vq7xqdoq

 

Como veréis, he puesto un minuto pero bueno eso es relativo, y he cambiado la indexación completa a que complete lo que le falte, ya que dispongo de mas de 9 mil artículos y tardaría demasiado tiempo.

 

Lo que quiero es que cada cierto tiempo, indexe los archivos para que yo no tenga que estar manualmente indexando los que falten al índice, y que de esta forma mis clientes puedan buscar por el buscador de mi página cualquier artículo que esté en la base de datos.

 

¿Alguien sabe algún método que funcione?.

 

Un saludo.

 

Buenas tardes.

 

¿Alguien sabría decirme como introducir en el cron una instrucción para que cada cierto tiempo se indexaran los archivos de Prestashop?

 

El ejemplo que os voy a poner es como estoy intentando que lo realice pero no hace nada de nada y no se que estoy haciendo mal:

 

*/1 * * * * /bin/php -f /var/www/nombre de la carpeta admin de prestashop/searchcron.php?&token=vq7xqdoq

 

Como veréis, he puesto un minuto pero bueno eso es relativo, y he cambiado la indexación completa a que complete lo que le falte, ya que dispongo de mas de 9 mil artículos y tardaría demasiado tiempo.

 

Lo que quiero es que cada cierto tiempo, indexe los archivos para que yo no tenga que estar manualmente indexando los que falten al índice, y que de esta forma mis clientes puedan buscar por el buscador de mi página cualquier artículo que esté en la base de datos.

 

¿Alguien sabe algún método que funcione?.

 

Un saludo.

 

Buenas tardes.

 

¿Alguien sabría decirme como intruducir en el cron una instrucción para que cada cierto tiempo se indexaran los archivos de Prestashop?

 

El ejemplo que os voy a poner es como estoy intentando que lo realize pero no hace nada de nada y no se que estoy haciendo mal:

 

*/1 * * * * /bin/php -f /var/www/nombre de la carpeta admin de prestashop/searchcron.php?&token=vq7xqdoq

 

Como vereis, he puesto un minuto pero bueno eso es relativo, y he cambiado la indexación completa a que complete lo que le falte, ya que dispongo de mas de 9 mil artículos y tardaría demasiado tiempo.

 

Lo que quiero es que cada cierto tiempo, indexe los archivos para que yo no tenga que estar manualmente indexando los que falten al indice, y que de esta forma mis clientes puedan buscar por el buscador de mi página cualquier artículo que esté en la base de datos.

 

¿Alguien sabe algún método que funcione?.

 

Un saludo.

Link to comment
Share on other sites

Buenas tardes.

 

¿Alguien sabría decirme como introducir en el cron una instrucción para que cada cierto tiempo se indexaran los archivos de Prestashop?

 

El ejemplo que os voy a poner es como estoy intentando que lo realice pero no hace nada de nada y no se que estoy haciendo mal:

 

*/1 * * * * /bin/php -f /var/www/nombre de la carpeta admin de prestashop/searchcron.php?&token=vq7xqdoq

 

Como veréis, he puesto un minuto pero bueno eso es relativo, y he cambiado la indexación completa a que complete lo que le falte, ya que dispongo de mas de 9 mil artículos y tardaría demasiado tiempo.

 

Lo que quiero es que cada cierto tiempo, indexe los archivos para que yo no tenga que estar manualmente indexando los que falten al índice, y que de esta forma mis clientes puedan buscar por el buscador de mi página cualquier artículo que esté en la base de datos.

 

¿Alguien sabe algún método que funcione?.

 

Un saludo.

Link to comment
Share on other sites

En vez de usar esto:

 

*/1 * * * * /bin/php -f /var/www/nombre de la carpeta admin de prestashop/searchcron.php?&token=vq7xqdoq

 

Usa esto:

 

*/1 * * * * /usr/bin/wget -O - -q -t 1 http://TU-SERVIDOR/nombre de la carpeta admin de prestashop/searchcron.php?token=vq7xqdoq

 

Probablemente el script del cron este mal programado (en el sentido de que no sabe diferenciar, o no contempla, si se llama el .php desde CLI (bash) o desde CGI (apache)) por lo que la mejor manera de que funcione sin problemas es llamarlo mediante servidor web (con wget, que lo que hace es una petición URL como si de Chrome, Firefox o Internet Exploter se tratase)

 

Saludos.

Link to comment
Share on other sites

Hola, no se que está pasando ahora al foro pero llevo una hora intentando conectarme y no dejaba ver ninguna página, creo que es un error del servidor de prestashop del foro no tengo idea, bueno a lo que iba ahora que funciona:

 

He probado a poner lo que tú me has dicho(aunque hay que poner un ' delante y al final de la url 'http://...' para que funcione por consola) pero solo funciona por consola, cuando lo pongo en el cron no hace nada...

 

Esto es de locos, ¿alguna sugerencia de como ejecutar ese link en el cron?.

 

Un saludo.

Link to comment
Share on other sites

Mira tu apache log, si lo ejecutas como te indicado no debe darte problemas, salvo que no tengas instalado Wget, en ese caso usa cURL, mi crontab funcionando:

 

 

user@host:~$ crontab -l

# m h dom mon dow command

# low traffic

1 */2 * * * /usr/bin/wget -O - -q -t 1 http://www.example.com/some/path/to/cron.php?localhost=true

2 */3 * * * /usr/bin/wget -O - -q -t 1 http://www.example.com/ip.php?local=$(/sbin/ifconfig | grep -A 1 eth0 | grep inet | cut -d ':' -f 2 | cut -d ' ' -f 1) # Get local lan ip and send to server ^^

user@host:~$

 

Toma algo más de información que tengo para estos casos ;-)

 

 

# minutes hours day-of-month month day-of-week command

0 0 * * * /usr/sbin/ntpdate -Bb pool.ntp.org

0 6 * * * /usr/bin/mysqlcheck -aoA -u dbadmin

 

# Configuraciones de cron para cron.php en Drupal

#

# Opción 1: Wget

# 0 * * * * /usr/bin/wget -O - -q -t 1 http://www.example.com/cron.php

# Opción 2: cURL

# 0 * * * * /usr/bin/curl --silent --compressed http://www.example.com/cron.php

 

# Tricks:

# */5 = cada 5 minutos / horas / dias / etc...

# 1,9 = minuto 1 y 9 / hora 1 y 9 / dia 1 y 9 / etc...

# * = cada segundo / minuto / hora / dia / etc...

 

Si Wget no te funciona usa cURL.

 

Saludos.

Link to comment
Share on other sites

Wget lo tengo instalado, porque al abrir una terminal y poner lo que me dijiste si que me funciona..., lo que no me funciona es en el cron y no se porque, curl no lo tengo instalado, pero no quiero instalarlo porque creo que sería conveniente utilizar wget ya que si lo tengo instalado ya y se como funciona en linea de comandos.

 

No se donde esta el apache log.

es -0 o -O, es un cero o una letra o?, yo puse una o mayuscula letra.

 

Sigo provando pero esto no funciona...

Link to comment
Share on other sites

Quiero probar una cosa, ejecutar la sintaxis de wget en un sh, el cual mande a ejecutar desde el cron que eso si me funciona, pero no se que escribir dentro del archivo sh.

 

Yo he puesto:

 

#/bin/sh

 

wget -O - -q -t 1 http://www.tecnotorba.es/nombre de la carpeta admin/searchcron.php?&token=vq7xqdoq

 

 

¿alguna sugerencia de que poner en el archivo sh?

Edited by tecnotorba (see edit history)
Link to comment
Share on other sites

Discúlpa estabas preguntando lo mismo constantemente y no me di cuenta, para meter un job en el cron tienes que poner:

 

user@host:~$ crontab -e

 

para listar tus cronjobs:

 

user@host:~$ crontab -l

 

Si ejecutas esto estarás cambiando el cronjob del usuario root:

 

user@host:~$ sudo crontab -e

 

En cuanto a lo de si es un 0 o una O copia y pega jejejejeje.

 

Saludos!

Link to comment
Share on other sites

¿Alguien sabe como poner el wget desde un archivo sh?. Si hay que poner comillas o algo de eso que no tengo idea de como hacerlo y no encuentro nada referente a utilizar wget con un link que termine en .php y luego con valores añadidos (que creo que sería lo mismo) como es mi caso.

Link to comment
Share on other sites

No es ese cron el que uso, el que uso es el que utilizo en una ruta y todo lo que allí pongo funciona correctamente, lo que no entiendo es porque al poner lo que tu me dices no funciona.

 

¿Es posible que sea porque no tenga privilegios?, como me estás comentando de que lo ponga en el otro crontab del root..., dime si esto es así y lo pruebo, pues no me gusta tener 2 archivos crontab abiertos y modificandolos que luego uno no sabe donde deja las cosas.

 

Edited by tecnotorba (see edit history)
Link to comment
Share on other sites

Un segundo, para que ese cron que me estas diciendo que abra funcione, debería de iniciar sesión como root y lo veo inecesario si se puede hacer con la sesión de administrador que tengo iniciada en el servidor.

 

Asi que mi pregunta vuelve a ser la misma, si sabes como utilizar el wget en un archivo sh me sería de gran utilidad para seguir probando. :)

Link to comment
Share on other sites

Lee bien, y piénsalo, antes de poner tantos posts seguidos, no te dicho que uses ni la cuenta de usuario ni la cuenta de root, te he explicado que si pones 'sudo' delante de 'crontab -e' estarás editando el crontab de root no el de tu usuario, nada más.

 

http://es.wikipedia.org/wiki/GNU_Wget

 

http://www.linuxtotal.com.mx/index.php?cont=info_admon_017

 

http://www.cyberciti.biz/faq/run-execute-sh-shell-script/

 

http://linuxconfig.org/Bash_scripting_Tutorial

 

http://es.wikipedia.org/wiki/Bash

 

Buscar en Google: 30 segundos

 

Poner posts para que te lo den hecho: 5 minutos.

Link to comment
Share on other sites

Buenas tardes.

 

He de comentarle (sin animo de ofender), que he estado días buscando por google antes de postear en el foro, nunca posteo nada sin antes buscarlo, bastante llevo ya en la informática como para saber que antes uno ha de buscar para no molestar.

 

Bueno a lo que íbamos, en el primer link y el segundo, me explica lo que ya sabía de este comando, explícitamente en el crontab de mi servidor tengo esta linea puesta:

 

*/1 * * * * wget -o (letra) - -q -t 1 http://www.tecnotorb...&token=vq7xqdoq

 

he puesto un minuto para saber si funcionaba rápidamente, pero por mucho tiempo que espere como no le de manualmente a esa opción dentro del Prestashop no indexa nada.

 

Respecto al 3º link que me explicas como ejecutar sh, eso no es a lo que me refería, me refería a que había que poner dentro del archivo sh, ya se como ejecutar archivos sh, lo que no se es como he de poner la instrucción wget dentro de él y que la ejecute correctamente, y bueno, he puesto wget (opciones) http://... y tampoco hace nada...

 

El resto de links, no entiendo nada, aparte de que está en ingles y cuesta el tripe de entender con traductores que lo traducen todo mal y que me podría tirar días o semanas para poder estudiar todos esos códigos de programación.

 

Así pues, el comando que te he comentado antes en este mismo mensaje, no hace nada, haber de que manera podemos solucionarlo y dar apaño a lo que quiero hacer :).

 

Gracias de antemano.

Link to comment
Share on other sites

Hola prestachopo, veo que conoces un poco del tema, queria preguntarte si podria usar algo de codigo para crearme algun php que pudiera automatizar el cambio de moneda cada 6 horas por decirlo asi, sinceramente no he buscado la solucion aun, habeces vatallo para encontrar de donde salen tantas cosas en prestashop jejeje, aun no conozco por completo como es la manera que trabaja y de donde obtiene que datos, en si quiero ver si es posible automatizar esto y quisiera agragarle cierto porcentaje al resultado, crees que me podrias guiar un poco?, de antemano te agradezco.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...