Dominar el trabajo de Cron y automatizar las tareas básicas del servidor

Artículo escrito por:
  • Artículos destacados
  • Actualizado: sep 06, 2017

El alojamiento web está diseñado para ser fácil, directo y perfecto para el profesional que está en movimiento y simplemente no puede dedicar cada hora de cada día a gestionando su servidor de hosting y tareas asociadas.

Con ese fin, casi todos los servidores basados ​​en Unix o Linux ofrecen un administrador de tareas automatizado conocido como "cron Job”O“ Crontab ”.

Esta utilidad de software es muy parecida al programador de tareas en Microsoft Windows, ya que se le puede indicar que haga ciertas cosas en ciertos momentos, evitando que un usuario realice estas tareas manualmente. Esto es especialmente importante cuando se considera que muchos procedimientos rutinarios de mantenimiento, copia de seguridad y comunicaciones del servidor pueden tardar horas y horas en completarse. La mayoría de las personas simplemente quieren ir a casa después de un día en la oficina y relajarse, en lugar de pasar la tarde haciendo copias de seguridad de los archivos y administrando los contactos.

Esas personas están de enhorabuena, ya que cada tarea se puede programar a diario, semanalmente o mensualmente, o incluso más, en algunos casos, y se pueden dar instrucciones específicas al servidor dentro de la utilidad Crontab sobre cómo realizar la tarea. , cómo saber cuándo está completo y qué hacer cuando la tarea en cuestión haya finalizado.

Los usuarios podrán relajarse mientras su servidor hace todo el trabajo pesado durante horas; o simplemente pueden programar el trabajo para que se complete mientras están trabajando duro en sus propias oficinas. Debido a que está automatizado, un trabajo de Cron puede ocurrir prácticamente a cualquier hora del día.

Aprendiendo a decir la hora usando el formato de un trabajo Cron

Un trabajo de Cron no es exactamente algo fácil de dominar; de hecho, se considera ampliamente una de las configuraciones más avanzadas disponibles en un estándar Linux or Unix Servidor web. Esto es parcialmente porque el lenguaje utilizado para programar estos trabajos es tan arcaico y, en algunos casos, completamente al revés. Cuando se trata de contar un tiempo determinado al trabajo de Cron o a la pestaña de Cron en cuestión, las cosas son ciertamente al revés, al revés y un poco confusas.

El formato para decir la hora a través de un trabajo de Cron es tal:

MINUTO HORAS DÍA DEL MES MES DÍA DE LA SEMANA COMANDO

Es todo una línea, y el número par y el comando están uno al lado del otro en una contracción uniforme. Es suficiente para hacer que la mayoría de los desarrolladores y operadores de servidores hagan una mueca y, de hecho, muchos de ellos lo hacen hasta que se acostumbran a desarrollar un trabajo eficiente de Cron.

Es importante tener en cuenta que cada aspecto del tiempo del trabajo de Cron es numérico; no hay nombres de mes, nombres de días u otras palabras utilizadas durante el desarrollo del tiempo durante el cual se debe realizar una tarea.

Por lo tanto, configuremos un trabajo de Cron para 10: 30 estoy en julio 7th para tener una idea de cómo se ve el tiempo de un trabajo de Cron cuando se convierte estrictamente en números.

30 10 07 07 *

El ejemplo anterior establece que el trabajo debe completarse a los 30 minutos de la décima hora del séptimo día del séptimo mes. Todos los números tienen dos dígitos, incluso cuando el mes o día es solo un dígito. Es importante recordar esto, ya que un solo dígito a menudo hará que el trabajo de Cron no sea válido y simplemente no se realizará nunca. Al final de la estructura de construcción, un asterisco indica que el trabajo debe realizarse cualquier día de la semana. Esto es importante, ya que configurarlo en 03 para el miércoles significaría que la tarea solo se realizaría en julio 7th si ese día fuera un martes. Es probable que eso suceda una vez cada siete u ocho años, lo cual es una pequeña absorción para la mayoría de los desarrolladores a considerar.

Otra consideración importante que se debe hacer al configurar un trabajo de Cron es que el formato de la hora es la hora militar de 24-hora en lugar de la hora civil de 12-hora. Para cambiar la hora del trabajo de Cron a 10 pm, la hora se cambiaría a 22 en lugar del 10 actual.

Ejemplos de trabajo Cron

Finalmente, si un usuario simplemente desea completar una tarea de forma diaria, mensual o incluso anual, puede omitir el proceso de configuración de un tiempo específico por completo. En su lugar, el proceso de trabajo de Cron proporciona simplemente el uso de variables que determinan cuándo se realiza un trabajo en estos intervalos frecuentes. Éstos incluyen:

  • @diario
  • @mensual
  • @anual

Debido a que la hora no puede controlarse y determinarse estrictamente utilizando horas y minutos, estos trabajos se realizarán exactamente a la medianoche, de acuerdo con la hora interna del servidor, en el intervalo solicitado. Eso significa que el intervalo mensual se producirá exactamente a la medianoche del primer día de cada mes. El intervalo @año se producirá exactamente a la medianoche del primer día de cada año; y el intervalo diario ocurrirá exactamente a la medianoche todos los días del año.

Esto es mucho más fácil que establecer una fecha, hora y día específicos de la semana, pero ciertas tareas que se realizan a la medianoche del primer día del mes o año pueden tener algunos inconvenientes para ciertos clientes. Siempre tenga en cuenta las necesidades tanto de los administradores como de los visitantes del sitio cuando programe tareas que se realicen exactamente a la medianoche.

Agarrando la variable "MANDO" y qué hacer con ella

Como se puede ver en el ejemplo anterior, construir un trabajo Cron real es relativamente fácil. La fecha debe definirse primero y luego la función del trabajo Cron se define inmediatamente después. Esa función puede ser literalmente cualquier cosa, incluida la ejecución de un script PHP o un script de respaldo personalizado que almacena los archivos y datos del servidor en un archivo remoto o local. Para aclarar, nos basaremos en el ejemplo que se utilizó anteriormente e instruiremos al trabajo de Cron para que ejecute un script PHP en julio 7th en 10: 30 por la mañana. Este script PHP se llamará "backup.php" y asumiremos que el archivo PHP es un script de respaldo completo que recopila, comprime y almacena archivos del sitio el séptimo mes cuando el servidor se lo indica. Así es como se ve:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Cuando este trabajo Cron se ingresa en la lista de pestañas Cron del servidor, se ejecutará automáticamente en 10: 30 am cada julio 7th de cada año. Ejecutará el script de respaldo PHP que se encuentra en el directorio "scripts de respaldo", y ahí es donde funciona el verdadero genio de la configuración del trabajo de Cron.

En lugar de requerir comandos avanzados de sus usuarios para realizar tareas como copias de seguridad del sitio y vacíos de caché, simplemente le brinda a los usuarios la capacidad de ejecutar scripts existentes en un intervalo específico o en una fecha específica en un momento específico. Esto significa que no se necesitan conocimientos avanzados de programación más allá de lo que el usuario ya sabe. PHP es perfectamente capaz de hacer copias de seguridad de los archivos del sitio, al igual que archivos mucho más avanzados y lenguajes de programación que el usuario más sofisticado podría desarrollar para su servidor Linux.

Esta configuración simple se puede usar para hacer prácticamente cualquier cosa, entonces, siempre y cuando un script preescrito proporcione la ejecución de esas acciones independientemente de la entrada del usuario. Esto significa que cualquier script ejecutado por un trabajo Cron dentro de una pestaña Cron debe estar completamente automatizado y ser capaz de ejecutarse solo, sin embargo. Por ejemplo, sería imposible (y simplemente ilógico) decirle al trabajo de Cron que ejecute un índice de WordPress o un archivo de tema todos los días a la misma hora. Simplemente no hay acciones ni procesos automáticos definidos y, aunque el trabajo Cron ejecutaría el archivo, no haría nada y permanecería estático hasta que se proporcionara la información del usuario de otra manera.

Por esta razón, si está codificando o descargando scripts de copia de seguridad u otros para trabajar con tareas de Cron, siempre asegúrese de que exijan exactamente la entrada del usuario cero para realizar sus funciones correctamente. Un programador de tareas automatizado debe emparejarse con un proceso automatizado dentro del archivo que ejecuta. No hay excepciones para esta regla.

Dominar el archivo de la ficha global Cron en un servidor típico

Cada trabajo Cron específico que se especifica para la ejecución se encuentra dentro de un archivo más grande que se conoce como una pestaña Cron. Algunos servidores tienen múltiples pestañas Cron para múltiples tipos de aplicaciones y entradas automatizadas, pero esto es raro y en gran parte reservado para los operadores y propietarios de servidores más avanzados. Aquellos que solo tienen un archivo de pestaña Cron pueden usar los comandos a continuación para editar, eliminar o ver el archivo en su totalidad, con cada una de sus tareas automatizadas específicas enumeradas para ver dentro del archivo.

crontab -r

Este comando elimina (por lo tanto, "r") o elimina todo el archivo de pestaña Cron. Esto lo purgará efectivamente de todos los comandos y scripts automatizados, y lo restaurará a un archivo en blanco que se puede reconstruir. Esta es una opción adecuada para aquellos que han logrado corromper el archivo o de alguna manera mal las tareas y los tiempos. A veces, es simplemente más fácil comenzar de nuevo.

crontab -e

En este caso, "e" significa "editar". Aquellos usuarios que deseen editar las funciones descritas en una pestaña Cron en lugar de eliminar el archivo por completo pueden usar este comando para dirigirse al editor de línea de comandos que les permitirá agregue nuevas tareas, elimine las antiguas o cambie los tiempos de programación aplicables para cada uno de los trabajos de Cron enumerados en el documento de la pestaña Cron.

crontab -l

En este caso, es bastante fácil de recordar asociando la "L" con "look". Este comando permite que un administrador del servidor simplemente vea el contenido completo de su archivo de pestaña Cron sin eliminarlo por completo del servidor y sin tener la capacidad de editar el contenido. Esta visualización de solo lectura del contenido de la pestaña Cron es perfecta para recordar qué tareas están programadas para qué momentos y para verificar la integridad del archivo en sí.

Por qué es importante dominar el trabajo Cron y los archivos de automatización de pestañas Cron

En general, lo único automatizado de un servidor es la rotación de su disco duro y el rendimiento de sus características de hardware. Sin embargo, más allá de eso, el servidor debe estar capacitado e instruido para realizar tareas rutinarias y extraordinarias que van más allá de simplemente mostrar un panel de control de software o actualizar la instalación de PHP o Perl que un usuario ha colocado en el disco duro.

Es importante recordar que una de las funciones más esenciales que un servidor puede ejecutar regularmente es la creación de una copia de seguridad de datos y configuraciones del sitio. Prácticamente no hay forma de automatizar este proceso sin un trabajo de Cron y, debido a la naturaleza de Internet y a todos los visitantes maliciosos que pasan a través de un sitio a diario, la falla para automatizar este proceso a diario o semanalmente podría resultar en y pérdida catastrófica de datos.

Sin embargo, más allá de eso, hay una serie de tareas que deberían automatizarse mediante el proceso de trabajo de Cron. Estas tareas incluyen purgar cualquier caché del sitio que pueda mostrar imágenes obsoletas o contenido impreso a los visitantes del sitio; también incluye eliminar archivos antiguos, limpiar directorios e imágenes antiguos y asegurarse de que todo lo que esté almacenado en el disco duro de un servidor esté actualizado y sin daños.

Al igual que una computadora personal en buen estado programa automáticamente el mantenimiento del disco, las exploraciones de antivirus y malware, las actualizaciones de software y las eliminaciones de archivos, un servidor saludable debe configurarse para que se cuide solo y se mantenga en buen estado. De lo contrario, se vuelve vulnerable a choques, intentos de piratería y pérdida de datos que conducirán a la pérdida de beneficios, publicidad, creación de contenido e incluso al estado de clasificación de motores de búsqueda.

Fácil de aprender y más fácil de implementar

Crear un trabajo de Cron dentro de una pestaña Cron estándar es una de las cosas más fáciles que puede hacer un administrador de servidor.

El proceso se encuentra dentro de la línea de comando estándar y descompone cada segmento de tiempo en un código de dos dígitos.

Debido a que no requiere conocimiento adicional de ningún lenguaje de programación nuevo para automatizar tareas, el servicio esencialmente se basa en el conocimiento existente de programación y operaciones de servidor que un administrador ya posee. Siendo este el caso, simplemente no hay razón para no comenzar a automatizar las funciones esenciales del servidor y garantizar la integridad de los datos y las operaciones del sitio.

Acerca de Jerry Low

Fundador de WebHostingSecretRevealed.net (WHSR): una revisión de alojamiento confiable y utilizada por los usuarios de 100,000. Más de 15 años de experiencia en alojamiento web, marketing de afiliación y SEO. Colaborador de ProBlogger.net, Business.com, SocialMediaToday.com y más.