Un cron o cronjob es una tarea que puedes automatizar para que se ejecute cada x tiempo en tu servidor, por ejemplo en betabeers usamos crons para mandar emails de recordatorios para los eventos de betabeers.
Puedes configurar los crons de tu server como si fuera un editor de texto, ejecutando el siguiente comando:
#crontab -e
Estructura de un cron
minuto (0-59) + hora (0-23) + dia del mes (1-31) + mes (1-12) - dia semana (0-6, 0=domingo) + comando
Ejemplos
- Ejecutar un script php todos los días a las 00:00
0 0 * * * /usr/bin/php /home/web/public_html/cron/test.php
- Ejecutar un script todos los domingos a las 20:00
0 20 * * 0 /usr/bin/php /home/web/public_html/cron/test.php
- Ejecutar un script cada hora todos los días
0 * * * * /usr/bin/php /home/web/public_html/cron/test.php
Notas
- Recuerda una vez hayas terminado de editar los crons, pulsa CTRL+X y Y + ENTER para guardar los cambios, o N + ENTER para cancelar los cambios.
- El caracter * según el orden puede significar cada minuto, hora, dia del mes, mes, dia de la semana
- Si tu script depende de un iniciador por ejemplo setup.php donde se inicia la conexión con la base de datos, este deberá estar enlazado con una ruta absoluta:
require "/home/web/public_html/setup.php";
para aportar mi granito de arena, creo que esta página web es de mucha ayuda a la hora de generar nuestros crontab script de una forma muy gráfica:
http://www.crontab-generator.com/
muy bueno crontab-generator ya no sé hacer crons sin esto, aunque parece que se ha caído, si alguien busca una alternativa hay:
http://www.easycron.com/generator/crontab
http://www.generateit.net/cron-job/
buen dia.
estoy realizando un proyecto en php con dreamweaver. y necesito hacer exactamente lo que comentan de enviar email automáticos recordatorios donde avise que un evento comensara en un día o dos al dueño del evento.
como podría hacer eso o si tienen ejemplos tutoriales.
para programar un cron (tarea repetitiva que puedes automatizar) mira si tu hosting tiene la opción de configurarlo desde un panel de control como cpanel o plesk. también lo puedes hacer como he comentado arriba por ssh en terminal pero es un poco complicado si no tienes experiencia.
básicamente lo que necesitas hacer es un script php que haga lo siguiente:
1- comprobar que eventos hay para dentro de 2 días adelante.
2- si hay algún evento enviar un email al dueño del evento como comentas.
puedes configurar el cron para que se ejecute una vez una vez al día todos los días de la semana, por ejemplo:
0 12 * * * enviar_emails.php
aquí tienes una idea de como podría ser el script php, si lo copias y pegas no te funcionará tienes que adaptarlo a tu plataforma.
he puesto comentarios en código para que te ayuden a entenderlo mejor más fácil ya no te lo puedo poner.
https://gist.github.com/miquelcamps/5637310
Hola miguel buen dia, estoy volviendo a retomar el tema de los cron job :) tengo varias preguntas no se si me puedas ayudar :
1.en estas lineas de codigo:
como hago para que se envie al correo del formulario del evento debido que hay varios formularios con diferentes dueños de eventos, no se si me hice entender. agradezco mucho la ayuda ya poco a poco lo voy realizando.
Puedes configurar los crons de tu server como si fuera un editor de texto, ejecutando el siguiente comando:
#crontab -e
Estructura de un cron
minuto (0-59) + hora (0-23) + dia del mes (1-31) + mes (1-12) - dia semana (0-6, 0=domingo) + comando
Ejemplos
- Ejecutar un script php todos los días a las 00:00
0 0 * * * /usr/bin/php /home/web/public_html/cron/test.php
- Ejecutar un script todos los domingos a las 20:00
0 20 * * 0 /usr/bin/php /home/web/public_html/cron/test.php
- Ejecutar un script cada hora todos los días
0 * * * * /usr/bin/php /home/web/public_html/cron/test.php
Notas
- Recuerda una vez hayas terminado de editar los crons, pulsa CTRL+X y Y + ENTER para guardar los cambios, o N + ENTER para cancelar los cambios.
- El caracter * según el orden puede significar cada minuto, hora, dia del mes, mes, dia de la semana
- Si tu script depende de un iniciador por ejemplo setup.php donde se inicia la conexión con la base de datos, este deberá estar enlazado con una ruta absoluta:
require "/home/web/public_html/setup.php";
Más información
- Guia de referencia en adminchoice
- Backups automáticos de la base de datos mysql y almacenados en dropbox
18/03/2013 00:27
define('LIB_ROOT', realpath(dirname(__FILE__).'/../inc').'/');
Y a partir de ahí tiras de la constante `LIB_ROOT` *siempre*
18/03/2013 09:06
para aportar mi granito de arena, creo que esta página web es de mucha ayuda a la hora de generar nuestros crontab script de una forma muy gráfica:
http://www.crontab-generator.com/
15/03/2014 10:57
http://www.easycron.com/generator/crontab
http://www.generateit.net/cron-job/
23/05/2013 17:57
estoy realizando un proyecto en php con dreamweaver. y necesito hacer exactamente lo que comentan de enviar email automáticos recordatorios donde avise que un evento comensara en un día o dos al dueño del evento.
como podría hacer eso o si tienen ejemplos tutoriales.
23/05/2013 18:16
para programar un cron (tarea repetitiva que puedes automatizar) mira si tu hosting tiene la opción de configurarlo desde un panel de control como cpanel o plesk. también lo puedes hacer como he comentado arriba por ssh en terminal pero es un poco complicado si no tienes experiencia.
básicamente lo que necesitas hacer es un script php que haga lo siguiente:
1- comprobar que eventos hay para dentro de 2 días adelante.
2- si hay algún evento enviar un email al dueño del evento como comentas.
puedes configurar el cron para que se ejecute una vez una vez al día todos los días de la semana, por ejemplo:
0 12 * * * enviar_emails.php
aquí tienes una idea de como podría ser el script php, si lo copias y pegas no te funcionará tienes que adaptarlo a tu plataforma.
he puesto comentarios en código para que te ayuden a entenderlo mejor más fácil ya no te lo puedo poner.
https://gist.github.com/miquelcamps/5637310
espero que te ayude, saludos
19/07/2013 18:35
1.en estas lineas de codigo:
foreach( $eventos as $evento ){
$cabeceras = 'From: email@tudominio.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($evento->email, $evento->titulo, $evento->mensaje, $cabeceras);
}
como hago para que se envie al correo del formulario del evento debido que hay varios formularios con diferentes dueños de eventos, no se si me hice entender. agradezco mucho la ayuda ya poco a poco lo voy realizando.
28/12/2013 12:25
Nosotros usamos un sistema de CRON dinamico por BBDD.
Solo hay una entrada de cron que se ejecuta cada minuto y la app CLI de PHP se encarga de lanzar el framework y la funcion que toque...
En inglés:
http://garridodiaz.com/automated-tasks/
28/12/2013 15:06
28/05/2014 16:35
Magento utiliza el mismo sistema de crons por BBDD.
Saludos,