X
    Categories: PHPUtilidades

Trabajo con Cron Job del Cpanel

Tarde o temprano nos toparemos con la necesidad de tener tareas programadas o tambien llamadas cron job en los cpanel y en linux el archivo crontab (/etc/crontab) que sirve de mucho esto ya que de lo contrario tendriamos que estar detras del sistema y el aplicativo no nos estaria ayudando mucho pero si aun de lo dicho no entiendo mucho en que te puede servir te doy algunas ideas:

  1. enviar mail de recordatorio cuando  ya van a vencer sus facturas.
  2. Enviar boletines mensuales a todos los usuarios suscritos.
  3. Un sistema de ticket enviar mail de recordatorio de atencion.
  4. Alertar si un producto tiene poco stock por medio de un correo.
  5. Actualizacion  de registros en ciertas fechas que se cumplan
  6. .

  7. Sistema de agenda donde puedes hacer alarmas con fechas

entre muchas cosas mas que se te puedan ocurrir al entender la gran ayuda que puede ser pero se que si eres programador que ve por primera vez este tema te sentiras confundido como yo lo pase cuando tuve que toparme hace varios años atras. Entonces voy a desarrollar un caso que te ayudara mejor a entender.

CASO:
Tenemos un sistema de colegio donde tiene facturacion y contamos con un cronograma de pagos  quiero decir que tenemos una tabla con las fechas que debe pagar y vamos a avisar al cliente que su factura se vencera pero claro debemos enviar 2 dias antes que venza la fecha.

tenemos una tabla asi donde tenemos la fecha que vence «date_expiration» y al cliente «client_id»

nuestro codigo del lenguaje de programacion que utilices debe restar 2 dias al date_expiration pero aqui lo vamos hacer con php. Realizare un codigo que simplemente va hacer un recorrigo a la tabla y en

la consulta le restare 2 dias y esa respuesta la comparare con la fecha actual y coinciden es que faltan 2 dias para que su fecha se venza.

 

$link=mysql_connect("localhost","root","pass");
mysql_select_db("colegio",$link);
 
//lo que hacemos aqui es una consulta a la tabla expiration_invoice y a al campo "date_expiration" le restamos 2 dias
$query=mysql_query("select DATE_ADD(date_expiration, INTERVAL -2 DAY) as fecha,client_id from expiration_invoice",$link)
//recorremos lo que nos devuelve la query
while ($data=mysql_fetch_array($query))
{
 
	if ($data["fecha"]==date("Y-m-d"))
	{
 
		/*hacemos una consulta a la tabla cliente por el id que tenemos "cliente_id" 
		y obtenemos el mail  para poder enviarle el correo informandole que vencera su factura*/
 
	}
 
}

 

en ese codigo fuente esta toda la logica y la idea es que cada dia esto se tiene que ejecutar a las 0 horas que ya seria el inicio de un nuevo dia. Asi todos los dias estaria haciendo el recorrido a revisar quien cumple la condicion pero como hacemos que corra cada dia automaticamente por que no es la idea que madrugues a ejecutar el archivo.

entonces si tienes un cpanel debes buscar la opcion:

ya dentro de la opcion cron job debemos configurar desde esta pantalla

aqui no ya nos ayuda mucho con la configuracion ya que tiene algunos predeterminados que son los mas comunes y tiene el que necesitamos pero explicare de todas maneras.

Minuto: 0
Hora: 0
Dia: *
Mes: *
Dia de Sema: *

en cristiano lo que dice hay es que se ejecutara:
en el minuto 0 de la hora 0 todos los dias de todos los meses de todas las semanas
y esto resumuento es que se ejecute a las 0 horas de todos los dias.

el punto de comando es donde debes ejecutar un comando linux y para ejecutar un archivo php en linux debes indicar la ubicacion del archivo y colocar antes php y resulta en nuestro caso esta ruta «/var/www/cron.php» y para ejecutarlo debe quedar asi «php /var/www/cron.php».

se pueden hacer muchas combinaciones ya dependiendo de su necesidad del proyecto alguna duda escribir en la caja de comentarios.

Luis Rodriguez: Hola, Soy Luis Rodriguez, radico en Lima – Perú, formado en una carrera informática, desempeñando desde el 2007 como programador web y viendo proyectos desde Front End y Back End a lo que me perfile como Full Stack. Esta Experiencia junto a mi interés en la Analítica Web me ayudó mucho entender el funcionamiento interno de las herramientas de analítica, con las que vengo trabajo activamente desde 2017. Linkedin