Hestia Control Panel (HestiaCP)
Hestia Control Panel (HestiaCP) es una plataforma de administración de servidor de hosting web de código abierto que se utiliza para gestionar servidores web y de correo electrónico. Proporciona una interfaz gráfica de usuario (GUI) que simplifica la administración y configuración de servicios como Apache, Nginx, PHP, correo electrónico, bases de datos y más en un servidor Linux. HestiaCP es una alternativa a otros sistemas populares de administración como cPanel o Plesk, y es adecuado para administradores de sistemas y propietarios de sitios web que desean administrar sus propios servidores web de manera más sencilla y eficaz.
Fundamentos esenciales de las tareas
En cada usuario que gestionemos en HestiaCP, encontraremos la sección de “Tareas”. Por ejemplo, el usuario predeterminado “admin” dispone de sus propias tareas.
Estas tareas son esenciales para el óptimo funcionamiento de HestiaCP, ya que se encargan de actualizar datos del panel, crear copias de seguridad de los usuarios, actualizar estados, verificar la disponibilidad de actualizaciones y realizar otras funciones importantes.
Es probable que en un usuario nuevo no haya tareas preestablecidas, pero podemos agregar una tarea haciendo clic en el botón “Añadir Tarea Programada”.
A continuación, explicamos el significado de cada parámetro de las tareas:
- Comando: Es el comando que se debe ejecutar. Debes proporcionar la ruta absoluta del comando junto con la ruta absoluta del archivo que se debe ejecutar. Si no conoces la ruta absoluta del comando, puedes acceder al servidor a través de SSH y ejecutar el comando whereis [comando] (por ejemplo: whereis php8.1).
- Minuto: Indica el minuto en el que la tarea debe ejecutarse.
- Hora: Especifica la hora en la que la tarea debe ejecutarse.
- Día: Indica los días en los que la tarea debe ejecutarse.
- Mes: Es el mes en el que la tarea debe ejecutarse.
- Día de la semana: Define los días de la semana en los que la tarea debe ejecutarse.
Cuando configures una tarea en HestiaCP, tienes la opción de seleccionar automáticamente la fecha y hora de ejecución. Si necesitas una programación más específica, puedes utilizar la página web “Crontab.guru” para generar una expresión cron personalizada.
Agregar una Tarea para Ejecutar Archivos en PHP
Si deseas agregar una tarea para ejecutar un archivo en PHP, sigue estos pasos:
- Encuentra la Ruta Absoluta del Comando: Recuerda que para obtener la ruta absoluta del comando para ejecutar un script en PHP (en este caso, para la versión de PHP 8.1), debes usar el comando adecuado. Para encontrar la ruta absoluta, accede al servidor a través de SSH y ejecuta el siguiente comando:
$ whereis php8.1
El resultado será similar a:
php8.1: /usr/bin/php8.1
Asegúrate de usar la versión de PHP correcta si estás utilizando una diferente.
Agregar una Tarea para Ejecutar Archivos en Bash
Si deseas agregar una tarea para ejecutar un archivo en Bash, sigue estos pasos:
- Encuentra la Ruta Absoluta del Comando: Para obtener la ruta absoluta del comando necesario para ejecutar un script en Bash, simplemente utiliza el comando ‘bash’. Deberás encontrar la ruta absoluta de ‘bash’, lo cual puedes hacer accediendo al servidor a través de SSH y ejecutando el siguiente comando:
$ whereis bash
El resultado debería ser similar a:
bash: /usr/bin/bash
Asegúrate de utilizar ‘bash’ como el comando correcto para ejecutar tus scripts en Bash.
Agregar una Tarea para Ejecutar Archivos en Python
Si deseas añadir una tarea para ejecutar un archivo en Python, sigue estos pasos:
- Encuentra la Ruta Absoluta del Comando: Para obtener la ruta absoluta del comando necesario para ejecutar un script en Python (en este caso, para la versión 3), debes utilizar el comando ‘python3’. Encuentra la ruta absoluta de ‘python3’ accediendo al servidor a través de SSH y ejecutando el siguiente comando:
$ whereis python3
El resultado debería ser similar a:
python3: /usr/bin/python3
Asegúrate de utilizar ‘python3’ como el comando correcto para ejecutar tus scripts en Python.
Agregar una Tarea para Ejecutar Archivos en NodeJS
Si deseas agregar una tarea para ejecutar un archivo en NodeJS, sigue estos pasos:
- Encuentra la Ruta Absoluta del Comando: Para obtener la ruta absoluta del comando necesario para ejecutar un script en Node.js, utiliza el comando ‘node’.
- Debes encontrar la ruta absoluta de ‘node’ accediendo al servidor a través de SSH y ejecutando el siguiente comando:
$ whereis node
El resultado debería ser similar a:
node: /usr/bin/node
Asegúrate de utilizar ‘node’ como el comando correcto para ejecutar tus scripts en Node.js.
Verificar la Ejecución Exitosa de Nuestra Tarea
Para asegurarnos de que nuestra tarea se está ejecutando correctamente, debemos acceder al servidor a través de SSH y revisar el registro de logs en /var/log/syslog.
Para buscar indicios de una ejecución exitosa, podemos utilizar el comando ‘grep’ junto con palabras clave relevantes. Por ejemplo, para verificar que la tarea se está ejecutando con el usuario de HestiaCP, podemos usar:
grep CRON /var/log/syslog | grep admin
También podemos buscar por el nombre del archivo asociado a la tarea:
grep crontab.php /var/log/syslog
Estos comandos mostrarán registros similares a los siguientes:
Jul 11 11:18:01 hestia CRON[76648]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-queue restart) Jul 11 11:20:01 hestia CRON[77110]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-queue backup) Jul 11 11:20:01 hestia CRON[77111]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-queue restart) Jul 11 11:20:01 hestia CRON[77112]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-rrd) Jul 11 11:20:01 hestia CRON[77115]: (admin) CMD (/usr/bin/php8.1 /home/admin/web/laravel.com/public_html/crontab.php) Jul 11 11:22:01 hestia CRON[77421]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-queue restart) Jul 11 11:22:01 hestia CRON[77422]: (admin) CMD (/usr/bin/php8.1 /home/admin/web/laravel.com/public_html/crontab.php) Jul 11 11:24:01 hestia CRON[77482]: (admin) CMD (sudo /usr/local/hestia/bin/v-update-sys-queue restart) Jul 11 11:24:01 hestia CRON[77483]: (admin) CMD (/usr/bin/php8.1 /home/admin/web/laravel.com/public_html/crontab.php)
Estos registros te indicarán que la tarea se está ejecutando correctamente.