En este artículo hablamos de todo lo relacionado con los trabajos Cron Jobs, qué hace y explicaremos sus características.
En el vasto mundo de la tecnología, cada minuto cuenta.
Es aquí donde entran en juego los cron jobs, esos pequeños ayudantes digitales que nos permiten programar y automatizar tareas recurrentes en nuestros sistemas informáticos.
Desde la realización de copias de seguridad hasta el envío de correos electrónicos programados.
Cron Jobs
Los cron jobs se convierten en nuestros aliados más confiables, liberándonos de la carga de las tareas repetitivas y permitiéndonos enfocarnos en lo que realmente importa: la innovación y el crecimiento.
Los cron jobs son herramientas de programación utilizadas en sistemas operativos tipo Unix y Linux para automatizar la ejecución de comandos o scripts en momentos específicos y recurrentes.
Estas tareas programadas se denominan «trabajos cron» o «cron jobs».
Qué más?
La herramienta cron jobs puede ejecutar cualquier comando o ejecutar cualquier script bash en el momento especificado.
Además, si tienes un sitio web alojado en un hosting compartido, encontrarás en el panel de control un icono especial de programación a través del cual podrás programar el cron. trabajo para ejecutar archivos en el momento especificado.
Puede, por ejemplo, ser un tipo El archivo fue diseñado en el lenguaje PHP o Python o lo que sea y puede programarlo directamente desde servidores Linux mediante el comando crontab -e
.
El trabajo comenzó
En este artículo lo explicaremos directamente desde el servidor Linux e implementaremos un archivo diseñado en lenguaje PHP, su nombre será zzahti.php
, puedes probarlo desde cualquier otro archivo.
Comando crontab -e:
En el sistema Linux
si queremos programar Cron Jobs debemos usar el comando crontab -e
, en el cual ponemos los comandos que queremos que se ejecuten.
Ejemplo:
Ahora abrimos la ventana de la línea de comandos (Terminal) y escribimos el siguiente comando:
sudo crontab -e
Tenga en cuenta que escribimos la palabra sudo para crear un cronjob
que se ejecute con el nombre de usuario root, porque ejecutaremos un archivo dentro de la carpeta «/opt» que requiere una permiso de root, Esto te pedirá tu contraseña de usuario.
Al iniciar sesión por primera vez se nos preguntará qué editor usaremos puedes elegir cualquier editor que deseas, como en la imagen a continuación.
Puedes elegir del 1 al 4, en mi caso elegí 1, que es para el editor Nano
.
Ahora que hemos elegido el tipo de editor, aparecerá una ventana como la siguiente:
Ahora vamos al final del archivo y agregamos una nueva línea de la siguiente manera:
* * * * * php /opt/zzahti.php
Como puedes ver, escribí el nombre del archivo precedido por la palabra php. Esto es para decirle al trabajo cron que queremos ejecutar un archivo que funcione en el lenguaje PHP.
Puedes agregar un archivo Python, pero debes escribir la palabra python en lugar de php.
En conclusión, puedes ejecutar cualquier archivo que haya sido programado en cualquier otro lenguaje, solo debes seleccionar el programa que lo ejecutará.
Ahora presionaremos ctrl + x
para guardar los cambios.
Ahora el cronjob va a ejecutar el archivo zzahti.php
en cada minuto, pero ahora no pasará nada hasta que creemos el archivo que se ejecutará en php
, a través de la siguiente línea:
sudo nano /opt/zzahti.php
Este comando abrirá una ventana directamente para nosotros escribiendo en el archivo usando el editor nano
, y hemos agregado la palabra sudo
para permitirnos crear el archivo dentro de la carpeta /opt
.
Entonces, en este caso, es posible que se te solicite tu contraseña, Debes escribirlo, luego escribimos este código que queremos que sea ejecutando por un cronjob:
<?php
error_log("Por ejemplo, el día actual es: " . date('Y-m-d H:i:s') . "\n", 3, '/opt/zzahti-cronjob-logs.log');
?>
Ahora guardamos el archivo presionando ctrl + x
para guardar el archivo.
Ahora le daremos permiso de ejecución al archivo zzahti.php, mediante el siguiente comando:
sudo chmod x+ /opt/zzahti.php
Después de ejecutar este comando, cronjob podrá ejecutar el archivo zzahti.php que hemos creado.
Ahora esperaremos un minuto y ejecutaremos este comando para ver qué nos imprime en el archivo que se creó a través del archivo zzahti.php
.
tail -f /opt/zzahti-cronjob-logs.log
Si no te funciona espera un poco y vuelve a intentarlo, si te funciona espera cada minuto y se imprimirá el texto.
Si no aparece nada, espera un momento y ejecútalo nuevamente porque cronjob ejecutará el archivo cada minuto.
Ahora después de ver cómo configuramos un cronjob para que se ejecute cada minuto, ahora agregaremos otro ejemplo y haremos que ejecute el archivo zzahti.php
todos los días a las 2:00 a. m. editando el archivo cronjob nuevamente escribiendo el comando sudo crontab -e
, como lo hicimos anteriormente.
Ahora no te pregunta qué editor usarás porque lo has especificado previamente.
Ahora podemos agregar una nueva línea que contenga una nueva instrucción o podemos cambiar las instrucciones de la línea existente.
0 2 * * * php /opt/zzahti.php
Ahora puedes cambiar en el mismo archivo anterior o. Creas una nueva línea que se ejecuta todos los días a las 2 am.
Ahora cronjob ejecutará este archivo todos los días a las 2:00 a.m.
Explicación de 5 instrucciones básicas de cronjob:
Una instrucción cron consta de cinco partes principales:
* * * * *
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └──────── Día de la semana (0-6), 0 es Domingo y 6 es Sabado
│ │ │ └──────────── Mes (1-12), 1 es Enero y 12 es Diciembre
│ │ └──────────────── Día del mes (0-31)
│ └──────────────────── Hora (0-23)
└──────────────────────── Minutos (0-59)
- Minutos: El minuto en el que se debe realizar la tarea (de 0 a 59).
- Hora: La hora en la que se debe realizar la tarea (de 0 a 23).
- Día del Mes: El día del mes en el que se debe ejecutar la tarea (del 1 al 31).
- Mes: El mes en el que se debe ejecutar la tarea (del 1 al 12).
- Día de la semana: El día de la semana en el que se debe ejecutar la tarea (de 0 a 6, donde 0 significa domingo).
Esta información le permite establecer un cronograma preciso para realizar tareas. Por ejemplo, puede configurar una tarea cron para realizar copias de seguridad de la base de datos todos los días a las 2 am. o para ejecutar un script específico cada hora.
En este artículo hemos hecho que cronjob ejecute el archivo de lenguaje php, también puedes ejecutar cualquier archivo específico del sistema Linux, es decir cuya extensión termine en .sh, o cualquier comando de Linux, o cualquier archivo que haya sido programado en un lenguaje específico.