¿Cómo puedo crear una tarea cron desde el Panel LWS?

Procédure

¿Qué es una tarea cron?

El objetivo de una tarea cron es ejecutar automáticamente un script, un comando o un programa a horas determinadas.

Con"LWS cron job", puede programar un script en su sitio para que se ejecute en diferentes momentos. Por ejemplo, una vez a la semana, una vez al día, el día 8 de cada mes, etc.

A estas tareas se les aplica un tiempo de espera de 240s, lo que significa que si su script tarda más de 4 minutos en ejecutarse, se cerrará automáticamente pasados 4 minutos.

¿Cómo puedo crear una tarea cron?

1. Vaya a la herramienta Cron Task

En primer lugar, conéctese a su panel de cliente LWS

A continuación, vaya a la gestión del servicio para el que desea crear una tarea cron.

Una vez en la gestión de tu servicio, busca el bloque "Base de datos y PHP" y haz clic en "Tareas cron".

¿Cómo puedo crear una tarea cron desde el Panel LWS?

2. Configurar la frecuencia de la tarea cron

Lo primero que debe configurar para su tarea cron es su periodicidad.

LWS ofrece una serie de preconfiguraciones que le permiten configurar esto en sólo 1 clic.

Para ello, basta con utilizar la primera lista de la parte superior del formulario y seleccionar uno de los parámetros propuestos. Esto rellenará automáticamente los campos para que coincidan con la periodicidad indicada en la lista que haya seleccionado.

¿Cómo puedo crear una tarea cron desde el Panel LWS?

Si la periodicidad que desea establecer no está propuesta en esta primera lista, no se preocupe, podemos configurar cada elemento.

Para cada elemento (minutos, horas, días, etc.) puede introducir los valores manualmente o utilizar el campo de lista que aparece a la derecha de cada campo.

Así, por ejemplo, si quiero que mi tarea comience todos los días a las 12:27, todo lo que tengo que hacer es seleccionar el número 27 en la lista adjunta al campo minuto y seleccionar 12:00 pm en la lista adjunta al campo hora.

Consejos

  • Salvo en casos muy especiales, no recomendamos configurar una tarea cron para que se ejecute cada minuto para no saturar el servidor y, por tanto, reducir el rendimiento de su servicio.
  • Prefiera las tareas que se ejecutan por la noche y a horas específicas (por ejemplo, 3.47am) para evitar ejecutar sus tareas al mismo tiempo que posibles tareas automáticas, como pueden hacer algunos CMS o herramientas utilizadas en su sitio.

3. Configuración del campo de comandos

Existen tres formas de llamar a su script a través de la herramienta Cron Task:

  • Llamada PHP
  • Llamada wget
  • Llamada cURL

La diferencia entre estas tres opciones radica principalmente en la forma en que ejecutan su script.

Una llamada Wget o Curl utiliza el protocolo HTTP, lo que significa que estará sujeta a las configuraciones y restricciones de Apache, como el tiempo de espera, que puede ser relativamente corto.

La llamada PHP, por otro lado, estará libre de las limitaciones que ya hemos discutido con los otros dos métodos. Piense en la llamada PHP como si fuera a través de una conexión SSH.

Así que usted podría preguntarse qué método elegir para configurar su tarea Cron. Mi respuesta sería que no hay diferencias reales en scripts básicos que se ejecutan rápidamente. Sin embargo, si su tarea CRON es bastante grande, con muchas acciones realizadas y por lo tanto un tiempo de ejecución un poco más largo, el método más adecuado será una llamada PHP. A diferencia de Curl o Wget, el tiempo de espera será mayor (4 min).

Vamos a ver cómo configurar una tarea cron para cada una de las llamadas mencionadas anteriormente. Tomaremos como ejemplo un sitio sencillo que llama a un script raíz.

Llamada cURL

En una llamada curl utilizando el protocolo HTTP, simplemente llamamos a la URL de nuestro archivo de la siguiente manera

curl https://www.mon-domaine.fr/cron.php

También podemos necesitar enviar parámetros a nuestro script. Para ello, basta con añadirlos de la siguiente manera:

curl -d "param1=valor1&param2=valor2" https://www.mon-domaine.fr/cron.php

A continuación, podemos recuperar los valores de estos parámetros en el código de nuestro script POST.

Llamada Wget

Durante una llamada Wget, que también utiliza el protocolo HTTP, al igual que con la llamada cURL, también llamaremos a la URL de nuestro script. Esto dará :

wget "https://www.mon-domaine.fr/cron.php"

Si necesitamos pasar parámetros al script, con Wget no tendremos más remedio que pasar los parámetros en GET. He aquí como escribir el comando:

wget "https://www.mon-domaine.fr/cron.php?param1=value1&param2=value2"

En el script, podemos recuperar estos dos parámetros usando GET.

Llamada PHP

En el caso de un sitio sencillo, imaginemos que el archivo que contiene mi script se llama cron.php

Basta con introducir el siguiente comando en la herramienta Cron Task:

php /htdocs/cron.php

Aquí, la versión de PHP utilizada para ejecutar su script será la 8.0 por defecto.

Si desea utilizar una versión específica de PHP, simplemente modifique ligeramente la llamada. Por ejemplo, si desea utilizar la versión 7.2 para ejecutar el script, este es el comando llamado :

php72 /htdocs/cron.php

También podemos necesitar pasar un argumento que luego será utilizado en nuestro script.

Por ejemplo, imaginemos que el objetivo de nuestro script es enviar un correo electrónico en función de un criterio que definamos, como el cumpleaños. Por lo tanto, podríamos querer pasar este criterio en la llamada. He aquí cómo hacerlo a través de la línea de comandos :

php72 /htdocs/cron.php type=aniversario

Casos particulares

También existen casos especiales en función de lo que utilice para su sitio.

Por ejemplo, en el caso de un sitio creado con el framework Cakephp, la configuración de la tarea CRON será un poco diferente porque se hará a través de un comando SHELL llamado por el sistema del framework.

Imaginemos que tenemos un sitio de comercio electrónico creado con el framework Cakephp y que queremos configurar un script que envíe un email al mejor cliente para ofrecerle un código promocional.

Vamos a crear un comando Cake que llamaremos SendCP, que contendrá el script que gestiona lo que queremos hacer. Así es como configuraremos la tarea Cron :

php72 /htdocs/Consola/cake.php SendCP

Llevaría mucho tiempo dar un ejemplo de cada caso, pero con lo que se ha dado aquí, ya tienes una buena base para utilizar la herramienta de tareas Cron.

Utilizando los distintos ejemplos, ahora sabemos cómo escribir nuestro comando para ;

  • simplemente ejecute nuestro script en los intervalos elegidos
  • ejecutar nuestro script añadiendo parámetros y a los intervalos elegidos

4. Crear un archivo de registro

Ahora vamos a ver cómo crear un archivo de registro para que podamos ver lo que sucedió durante el script llamado por Cron.

Para ello, utilizaremos el siguiente ejemplo para nuestro script CRON.

Ejemplo de una función PHP echo para el archivo de registro

<?php /* Para que no tengas que preocuparte por la caché */ header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); /* Escriba la fecha actual en el fichero, por ejemplo: 2023/01/19 12:24:01 */ /* PHP_EOL permite omitir una línea en el fichero */ echo date('Y/m/d h:i:s').PHP_EOL; /* Escriba la siguiente frase en el archivo de registro */ echo 'Grabando mi Cron'.PHP_EOL.PHP_EOL; ?>

Representación del archivo de registro después de lanzar el script a través de Cron Job

2023/01/19 02:57:01 Grabando mi Cron 2023/01/19 03:57:01 Grabando mi Cron 2023/01/19 04:57:01 Grabando mi Cron 2023/01/19 05:57:01 Grabando mi Cron 2023/01/19 06:57:01 Grabando mi Cron 2023/01/19 07:57:01 Grabando mi Cron 2023/01/19 08:57:01 Grabando mi Cron

Por lo tanto, lo que pongas en tu archivo de registro dependerá de ti y de lo que quieras controlar en tu script. Por ejemplo, podría ser una lista de acciones con el resultado de cada una.

Ejemplo de una llamada cURL con retorno en un archivo de registro

Para una llamada cURL, este es el comando a introducir en el campo "Comando":

curl https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_curl.log

En este ejemplo, la respuesta de escritura (echo PHP) se enviará al archivo cron_curl.log de la carpeta logs. Si el archivo o carpeta no existe, se creará automáticamente.

Ejemplo de una llamada wget con feedback en un fichero log

Para una llamada Wget, éste es el comando a utilizar:

wget -O - -q https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_wget.log

En este ejemplo, la retroalimentación de escritura (echo PHP) será enviada al archivo cron_wget.log en la carpeta logs. Si el archivo o carpeta no existe, se creará automáticamente.

Ejemplo de una llamada PHP con retroalimentación en un archivo de registro

Para una llamada PHO, este es el comando a utilizar:

php72 /htdocs/cron.php >> /htdocs/logs/cron_php.log

En este ejemplo, la retroalimentación de escritura (echo PHP) será enviada al archivo cron_php.log en la carpeta logs. Si el archivo o la carpeta no existen, se crearán automáticamente.


¿Cómo gestiono mis tareas cron?

Una vez que haya creado sus tareas cron, puede encontrarlas directamente en el listado que aparece debajo del formulario de adición.

¿Cómo puedo crear una tarea cron desde el Panel LWS?

Aquí encontrará una lista con el comando registrado, la periodicidad y la opción de eliminar un cron o pausarlo.

¿Cómo puedo crear una tarea cron desde el Panel LWS?

Valora este artículo :

Este artículo le ha sido útil ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Artículos similares

0mn lectura

Multidominio - Poner varios dominios en el mismo servicio de alojamiento web

1mn lectura

¿Es posible eliminar la función antispam de RSpamD en el alojamiento compartido?

0mn lectura

¿Cómo puedo ver los correos electrónicos enviados mediante la función de correo PHP y bloqueados por SPAMASSASSIN?


Formule una pregunta al equipo de LWS y a su comunidad