Crear una tarea cron en cPanel
En este tutorial aprenderemos a crear una tarea cron en cPanel.
Los trabajos de cron te permiten automatizar ciertos comandos o scripts en tu sitio. Puedes configurar un comando o script para ejecutarlos en un horario específico todos los días, todas la semanas, etc. Por ejemplo, puedes configurar un trabajo de cron para eliminar archivos temporales todas las semanas para liberar espacio en el disco.
Advertencia
Necesita tener un buen conocimiento de los comandos de Linux antes de poder usar los trabajos de cron de manera eficaz, ya que un mal uso de esta función puede ocasionar daños o un mal funcionamiento del sitio web
Pasos a realizar
- Una vez hayamos accedido a nuestra cuenta cPanel, deberemos ubicar la sección "Avanzada" y hacer clic en "Trabajos de cron"
- La primera opción que nos muestran es la de enviar las notificaciones que generen los trabajos cron. Por defecto toma la cuenta de correo por defecto de la cuenta cPanel.
- En el siguiente apartado podremos configurar la tarea o tareas cron a nuestra preferencia. Como nos comentaban en el anterior apartado, podremos indicar el código >/dev/null 2>&1 después de cada comando para que las tareas no generen notificaciones. Gracias al asistente de cPanel podremos indicar fácilmente que las tareas se ejecuten una vez al mes, todos los días, una vez cada cinco minutos, etc.
- Finalmente, haríamos clic en "Añadir nuevo trabajo cron" y ya tendríamos nuestra tarea cron creada.
Comandos útiles para crear una tarea cron
Nota:
No enviar correos electrónicos: Si al ejecutar la tarea cron quieres omitir el correo configurado en el apartado 2 debes usar el siguiente comando después del comando: " >/dev/null 2>&1"
Es posible que tenga que ajustar /home/miusuario/public_html/ dependiendo del directorio en el que se encuentra la cuenta de usuario. Para ver el directorio de tu cuenta, simplemente vea el ejemplo que general que aparece en "Añadir tarea cron".
Como ejecutar una url con cron
Cuando ejecutes wget o curl con una URL asegúrate de encerrarla entre comillas simples o dobles.
Usando wget
wget -q -O- "https://dominio.com/tu-url-a-ejecutar"
# Otra forma sería así (si te fijas aquí omitimos que envíe un correo electrónico al email configurado en cPanel)
/usr/bin/wget -O /dev/null "https://dominio.com/tu-url-a-ejecutar" >/dev/null 2>&1
Usando curl
# Aquí usaremos el user agent de cPanel para diferenciarlo de cualquier otro usuario que ejecute la url
/usr/bin/curl --user-agent cPanel-Cron "https://dominio.com/tu-url-a-ejecutar"
# Otra forma
curl --user-agent cPanel-Cron "https://dominio.com/tu-url-a-ejecutar"
Como puedes observar hay varias maneras de ejecutar una url en cron.
Como ejecutar un script php
Ejecutar un script PHP
/usr/local/bin/php -q wp-cron.php >/dev/null 2>&1
# O también
php /home/miusuario/public_html/wp-cron.php
Para usar una versión concreta de php. Debes reemplazar ea-php99 por la versión de php en cuestión.
Usar una versión PHP distinta
# Usando la versión 7.4 de PHP
/usr/local/bin/ea-php74 /home/miusuario/public_html/mi-cron.php
# Usando la versión 8.0 de PHP
/usr/local/bin/ea-php80 /home/miusuario/public_html/mi-cron.php
Rutas de programas o comandos mas comunes para cron
Programa | Ruta |
---|---|
php | /usr/local/bin/php |
python | /usr/bin/python |
perl | /usr/bin/perl |
java | /usr/bin/java |
bash | /bin/bash |
ruby | /usr/bin/ruby |
curl | /usr/bin/curl |