Utiliza Cron y Crontab para programar tareas en tu servidor

Utiliza Cron y Crontab para programar tareas en tu servidor

Sergio De Luz

¿Alguna vez has intentado programar una tarea repetitiva en tu servidor Linux y no has sabido cómo hacerlo? Las herramientas cron y crontab que están disponibles de forma predeterminada en sistemas Linux te permitirán realizar una determinada tarea (o varias) en un determinado tiempo, y es que vamos a ser capaz de programar con una exactitud de minutos qué queremos ejecutar y cuándo lo queremos ejecutar. Hoy en RedesZone os vamos a explicar en detalle cómo funciona tanto Cron como Crontab, para que administres correctamente tus servidores.

Estos dos elementos son muy importantes a la hora de programar tareas periódicas y que se ejecuten sin que tengamos que estar pendientes de su estado. Nos va a permitir despreocuparnos de ejecutar algo en un determinado momento, dejándolo completamente automático en el sistema operativo. Hemos mencionado con anterioridad Cron y Crontab. En primer lugar, vamos a ver qué diferencias existen entre ambos elementos. Posteriormente aprenderemos a agregar tareas, y para finalizar, nos adentraremos en la gestión de los jobs (trabajos) de Cron. Aprenderás todo lo necesario para poder utilizarlos.

 

Diferencias entre Cron y Crontab

Aunque pueda parecer que estamos hablando de lo mismo, no es así, y se podrían considerar dos elementos dependientes uno del otro. Para ser más claros, son los encargados de que la programación de tareas en sistemas Linux sea posible. Actualmente cualquier sistema operativo basado en Linux dispone de ambas herramientas, con el objetivo de programar las diferentes tareas de forma repetitiva sin que nosotros nos tengamos que encargar de ello.

Por tanto, si necesitas que se ejecute algo determinado en una hora concreta, cada día, cada semana, cada mes… Vas a poder utilizar estas dos herramientas que están disponibles en Linux. No importa qué distribución tengas instalada, ya que es compatible con todas ellas.

 

Qué es Cron

Cron es un demonio (que es como se conoce a un proceso en segundo plano) que se ejecuta desde el mismo instante en el que arranca el sistema operativo. Cron se encargará de comprobar si existe alguna tarea (job) para ser ejecutada, de acuerdo a la hora configurada en el propio sistema operativo. Es muy importante que la hora esté bien configurada, y también la zona horaria, de lo contrario, las ejecuciones que realice Cron no se corresponderán con nuestras configuraciones.

Para garantizar que nuestro sistema operativo esté configurado correctamente, es muy importante que obtenga la hora automáticamente de los servidores NTP (Network Time Protocol) que existen. Para comprobar que tenemos la hora correcta en nuestro sistema operativo, en qué zona horaria estamos y si el reloj del sistema está correctamente sincronizado con los servidores NTP, podemos ejecutar la siguiente orden:

timedatectl

Deberíamos ver algo como lo siguiente:

Tal y como se puede ver, todas las horas cuadran perfectamente y el tiempo es el correcto, esto es muy importante, de lo contrario, los «Cron» se ejecutarán en horas donde no deberían ejecutarse. Habría un problema si el sistema está mal configurado y coge una hora que no corresponde. En el caso de que no tengamos la zona horaria bien configurada, podremos configurarla de forma correcta con la siguiente orden:

timedatectl set-timezone Europe/Madrid

Con la instalación del sistema operativo Linux, se configuran de forma automática los servidores NTP que nosotros queramos, en caso de fallo o que queramos cambiar estos servidores NTP, podremos hacerlo instalando el correspondiente servicio y configurándolo en /etc/ntp.conf.

En función de la distribución, Cron se inicia utilizando las carpetas /etc/rc.d/ o /etc/init.d y cada minuto comprueba los ficheros /etc/crontab/var/spool/cron en busca de posibles ejecuciones que hayamos programado. Con esto podremos automatizar muchos procesos, agregando nuevos comandos o scripts con tareas a cron. Nos resultará muy útil, por ejemplo, par automatizar actualizaciones de los sistemas o para tener un protocolo de respaldo. Pero estas deben estar siempre escritas en un fichero Crontab.

Puede tener diferentes valores, según sea el periodo de tiempo en el que va a ejecutar una acción. Por ejemplo hacer algo cada hora, cada día, cada semana, siempre a un momento concreto del día, etc. Todo esto lo vas a poder configurar y programar para evitar que algo no se ejecute correctamente. Lo que va a hacer es revisarlo siempre que llegue el momento exacto.

 

Qué es Crontab

Crontab es un archivo de texto, se trata de un archivo con un contenido especial y específicamente diseñado para que sea leído correctamente por Cron y proceder con la ejecución que nosotros hayamos programado. Crontab posee una lista con todos los scripts a ejecutar, generalmente cada usuario del sistema posee su propio fichero Crontab, de esta forma, cada usuario podría programar sus propias tareas repetitivas independientemente, sin necesidad de que siempre tengamos que acudir al usuario administrador.

De esta forma, cualquier usuario (incluyendo los administradores) podrán programar tareas repetitivas para realizar diferentes ejecuciones. Por esto mismo, será muy útil para hacer un seguimiento y verificar que se cumplen las tareas como pueden ser las actualizaciones, sincronización o edición del estado de los contenidos como eliminar ciertos apartados.

Para generar el archivo propio, cada usuario deberá hacer uso del comando «crontab» (sí, es el mismo nombre que la propia herramienta). Se utiliza mucho para poder ejecutar y administrar tareas de Cron en un sistema.

Con Crontab, como vas a ver, podrás configurar el archivo según unos parámetros establecidos. Podrás poner un tiempo exacto para que ejecute la acción (o múltiples tareas). Su nombre, como en el caso de Cronos, viene de la palabra griega «tiempo», por lo que esa va a ser la clave de su funcionamiento.

Además de lo anterior, hay que tener en cuenta que la sintaxis crontab cuenta con hasta cinco campos. Cada uno de estos tiene una serie de valores que puedes encontrar en las siguientes líneas:

  • Minuto: valores 0-59.
  • Hora: valores 0-23.
  • Día del mes: valores 1-31.
  • Mes: valores 1-12.
  • Día de la semana: valores 0-6. El 0 representa el domingo. Ten en cuenta que en algunos sistemas, el valor 7 representa el domingo.
  • Comando: valores Orden a ejecutar.
 

Agregar tareas a Crontab

Partiendo de que podemos ejecutar tareas, en primer lugar, vamos a configurar un script muy sencillo que llamaremos consulta.sh, pondremos en nuestro «Escritorio» o en «Documentos» este script, podremos ejecutar directamente el editor de texto «nano» en la ubicación donde queramos ponerlo:

nano consulta.sh

El contenido del script sería el siguiente:

#!/bin/bash

#script de ejemplo

sudo ls -l / > archivoResultado.txt

Una vez que hayamos programado el script, que básicamente es un programa que lista los archivos y directorios del directorio actual, y lo exporta a un archivo de texto, tenemos que darle permisos de ejecución para poder ejecutarlo correctamente por parte de Cron, de lo contrario no tendrá permisos de ejecución:

chmod ugo+x consulta.sh

Este aspecto es muy importante, ya que de lo contrario el comando nunca será ejecutado.

Ha llegado el momento de editar el fichero que posee las tareas. Para ello nos vamos a ayudar del comando crontab -e. Nos encontramos la siguiente estructura:

linux-cron-crontab-anadir-tareas-periodicas

5 asteriscos y el comando a ejecutar. Cada uno de los 5 asteriscos significa:

  • m: minuto
  • h: hora
  • dom: día del mes
  • mon: mes
  • dow: día de la semana

Lo valores que pueden adoptar cada una de estas variables se encuentran en la imagen. Por ejemplo, en el caso del último, se permite la utilización del nombre de los días escritos en inglés. Aunque en la imagen anterior no aparezca, es necesario indicar entre el comando y el último asterisco (el día) el propietario del archivo para que funcione correctamente.

Para que quede todo claro, vamos a utilizar algunos ejemplos:

Si queremos ejecutar el script de consulta.sh todos los días a las 7 de la tarde, tendremos que indicar una línea en el crontab con lo siguiente:

00 19 * * * usuario /ubicacion/del/script/consulta.sh

Si queremos ejecutar todos los domingos a las 7 de la tarde:

00 19 * * 0 usuario /ubicacion/del/script/consulta.sh

Ejecutar el script todos los 4 de febrero a las 7 de la tarde:

00 19 4 2 * usuario /ubicacion/del/script/consulta.sh

Hay que decir que en Linux existen algunas cadenas de texto reservadas para ejecutar procesos durante determinados periodos en el propio Crontab, esto nos será de mucha ayuda:

  • @reboot: Ejecuta una vez y nada más iniciarse el equipo.
  • @yearly: ejecuta sólo una vez al año: 0 0 1 1 *
  • @monthly: ejecuta una vez al mes y el primer día: 0 0 1 * *
  • @weekly: todas las semanas, el primer minuto de la primera hora de la semana: 0 0 * * 0.
  • @daily: todos los días a las 12 de la noche: 0 0 * * *
  • @midnight: Tiene el mismo efecto que el anterior.
  • @hourly: todas las horas durante su primer minuto: 0 * * * *

Aunque os hemos puesto cuál sería el formato, al hacer uso de crontab -e se pueden utilizar estos términos para definir el periodo. Puede que necesites que se ejecute cada hora, cada día, cada semana, cada mes… En definitiva, cualquiera de estas opciones vas a tener disponibles.

 

Caracteres especiales

Como has podido ver, las posibilidades a la hora de establecer nuevas tareas se pueden utilizar muchos caracteres diferentes. Para ello podemos utilizar algunos modificadores, los cuales nos dan mucho más poder de crear nuevas reglas. Lo cual aumenta las posibilidades para poder crear procesos mucho más complejos, y como tal más precisos. Estos son

  • *: Tiene el mismo significado que asignar todos los valores.
  • ,:  Nos da un listado de valores.
  • -: Establece un rango de calores.
  • /: Significa «cada».
  • rango / excep: Crea excepciones en la regla.

Otro símbolo que es imprescindible en el día a día de crear reglas, es la almohadilla #. La cual será utilizada al comienzo de las líneas para indicar que estamos escribiendo tan solo un comentario. Esto puede servir para dejar algunas aclaraciones de como se hace algo, o para que sirve. Pero en general podemos escribir lo que queramos. En ese caso, esta no se tendrá en cuanta para la ejecución de la orden. Ocurre lo mismo que con los demás lenguajes de programación, donde siempre podremos establecer comentarios para dejar algún tipo de aclaración.

Una vez sabemos todo esto, ya podremos empezar a crear nuestras propias reglas. Pero es probable que, si queremos hacer alguna muy compleja, sea necesario tener algunos conocimientos de programación. Sobre todo, para comprender la estructura de cómo se va a ejecutar alguna tarea concreta. Y en caso de que falle, sabes donde se puede estar produciendo el problema en cuestión.

Con esta serie de caracteres especiales se pueden llevar a cabo diferentes tareas: programar un trabajo para una hora en concreto, programar un trabajo de fondo cada día, llegar a ejecutar un comando Linux después de cada reinicio, ver las entradas Crontab o editarlas, entre otras muchas tareas. Y lo cierto es que no son las únicas acciones que se pueden llevar a cabo a la hora de usar la sintaxis Crontab por nuestra cuenta.

 

Otras posibles tareas con Crontab

En este apartado, es posible hacer nuevos apartados y subapartados, pues no se limita a unas pocas opciones. Por ejemplo podemos ver cuales son los crontabs que se ejecutan en tiempo real como los siguientes:

  • Eliminar archivos y directorios vacíos. Esta tarea puede ser programada de forma muy personalizada.
  • Ejecución de múltiples tareas. Nos permite ejecutar varias tareas o trabajos, pero siempre de forma separada.

Y también es posible generar cadenas especiales de Crontab, como por ejemplo la ejecución de tareas de forma anual o mensual. Esto puede configurarse de forma que se ejecute en el minuto uno del año, pero en todo caso es posible realizar configuraciones muy variadas, todo de la mano de la programación que se realice con el comando.

Además de todo lo anterior, lo cierto es que hay otra serie de acciones extra de Crontab que te pueden interesar. Como es el hecho de realizar acciones adicionales como, por ejemplo, para crear un archivo de registro o hasta para desactivar un correo electrónico. Al igual que hay que tener en cuenta que te da la oportunidad de definir diferentes variables de entorno. Y es que no hay olvidar que entre toda la parte de funciones de crontab también hay otra serie de acciones extra que se pueden aprovechar como es el caso de:

  • Crear un archivo de registro: consigue que el comando pueda almacenar todas las salidas de los trabajos cron en un solo archivo llamado logs.log.
  • Entorno Crontab: llega a permitir que los usuarios puedan definir variables de entorno, es decir, se usa el comando crontab -e y se tiene que hacer uso de las opciones PATH, SHELL, LOGNAME y HOME.
 

Administración de los jobs del Cron

El funcionamiento de Crontab es muy sencillo, tal y como hemos podido ver, ahora os vamos a enseñar algunos comandos básicos para controlar el funcionamiento del propio Crontab en sistemas operativos Linux y que puedas ponerlo en práctica. Simplemente vas a tener que llevar a cabo estos pasos y podrás comenzar a usarlo.

Para remplazar el archivo existente por otro que defina el usuario se debe utilizar el siguiente comando:

crontab archivo

Para editar el archivo existente en la actualidad se utiliza el comando que ya hemos visto a lo largo de este artículo:

crontab -e

Listar todas las tareas existentes en el crontab del usuario:

crontab -l

Borrar el crontab que está configurado:

crontab -d

Definir el directorio en el que se almacenará el archivo de crontab. Para realizar esta operación se deben tener permisos de ejecución en dicho directorio:

crontab -c dir

Instrucción para manejar el crontab de otros usuarios existentes en el sistema:

crontab -u usuario

Este comando te permite borrar el archivo crontab de manera permanente:

crontab -r

Además de las anteriores opciones, o comandos como crontab- h, este sistema operativo también te ofrece una serie de cadenas de texto que ya vienen configuradas de manera predeterminar para que se puedan programar scripts de forma automática. Estas son las más comunes:

  • @reboot: este sirve para que se ejecute el script una vez que se inicia el equipo.
  • @yearly o @anually: consigue que se ejecute el script una vez al año.
  • @monthly: para que se ejecute de manera mensual, el primer día de cada mes.
  • @weekly: en este caso se puede usar para que se ejecute una vez por semana.
  • @daily: para todos los días.
  • @midnight: en este caso se daría todas las noches a las doce.
  • @hourly: esta cadena servirá para que se dé durante el primer minuto de cara hora del día.
 

Herramientas para Cron

Si buscamos automatizar ciertos aspectos en las tareas y de este modo evitar errores, podemos encontrarnos con algunas herramientas donde podremos escribir en este formato cron. Además, estas opciones no harán falta ni instalarlas, ya que se podrá hacer uso de estas alternativas a través de Internet, incluso, en la mayoría de los casos no hará falta ni un registro previo. Por tanto, estas son las herramientas para Cron que puedes usar en cualquier momento:

  • Crontab Guru: Se trata de un editor rápido y sencillo para crear expresiones de programación cron. Nos facilita alertas en tiempo real acerca de los posibles errores o inconvenientes que se puedan presentar a la hora de crear estas expresiones. Y no solamente esto, sino que te será de ayuda en diferentes momentos y todo gracias a que te ofrece diferentes ejemplos comunes o hasta consejos y trucos para que puedas entender diferentes opciones. Todo con el objetivo de que los usuarios puedan dar respuesta a sus posibles dudas.
  • Cron Job Generator: Con esta herramienta podremos crear y programar diferentes secuencias de comandos para que estos se ejecuten a una hora predeterminada. Por otro lado, hay que tener en cuenta que esta herramienta en particular te da la oportunidad de realizar distintas tareas ya con sus ajustes preconfigurados que se pueden ir repitiendo en diferentes intervalos de tiempo. Además de que estas tareas se pueden personalizar sin problemas, al igual que se ofrece la alternativa de fijar fecha y hora para su ejecución.
  • EasyCron: Nos permite programar tareas para llamar a URL específicas en diferentes intervalos de tiempo y momentos concretos. Nos facilitará la administración de trabajo cron con un panel de usuario a nuestra disposición y programar labores de acuerdo con fecha y hora configurada en nuestro sistema. También podremos ver registros de la ejecución de cada tarea y el envío de avisos por correo electrónico. Estas notificaciones, es posible establecer condiciones para que sean enviadas, como puede ser cada vez que se ejecuta o cuando ocurre algún fallo. Otra de sus funciones es el registro que pueden generar sus scripts durante las ejecuciones periódicas, estas las guardar para poder realizar un análisis posterior. Estos ficheros también se pueden generar con ciertos filtros, como por ejemplo, uno dedicado a los fallos que pueden ocurrir.
  • KDE Cron o KCron: dentro de las diferentes herramientas disponibles esta aplicaciójn gráfica para usuarios dentro del entorno de escritorio KDE es una de las opciones que se pueden usar en cualquier momento. Hay que tener en cuenta que llega a permitir que los usuarios puedan generar, modificar y hasta eliminar las tareas sin que tengan que interacturar de forma directa con el archivo crontab. Además, una de sus características principales es que ofrece una interfaz visual en la que se pueden elegir las horas, días y fechas. Y hasta permite definir el comando o script que se quiera ejecutar. Por lo que su uso es recomendable para aquellas personas que prefieran hacer uso de una interfaz gráfica en lugar de llegar a trabajar desde la línea de comandos.
  • Cron Maker: esta es otra de las herramientas para Cron a las que puedes sacar un gran partido. En este caso, lo cierto es que estás ante una opción que es muy parecida a EasyCron, la anterior herramienta. Estamos ante una herramienta que cuenta con una app específica sobre la biblioteca de código abierto de Quartz. De hecho, es una de las opciones que puedes usar si quieres crear expresiones de scripts para Cron sin tener que descargar nada, ya que esta herramienta está disponible online.

La última aplicación descrita, es sin duda la más completa de todas ellas a nivel de funciones, pero si hay que recalcar, que las otras dos son más sencillas de usar y de entender, pero tienen ciertas limitaciones a la hora de generar lo que necesitamos.

 

Logs en Cron

Con Cron tenemos la posibilidad de almacenar en un archivo las logs. Pero este puede resultar un poco lioso, ya que no solo se van a guardar las que a nosotros nos interesen. Si no que se guardarán todas ellas. En todo caso, es posible crear comandos para poder filtrar todo ese contenido. Si bien la información no va a ser todo lo detallada que nos gustaría, nos sirve para disipar alguna posible duda que podamos tener, o para buscar algún problema que se está produciendo.

El archivo, por lo general se llama: /var/log/syslog

 

Tipos de archivos de configuración cron

En el caso de cron, nos podemos encontrar con dos tipos de archivos de configuración, estos son:

  • Crontab de sistema UNIX / Linux: Este nos requiere privilegios de root, pues por lo general se utiliza para servicios del propio sistema o trabajos que pueden alcanzar una importancia crítica para el mismo. A mayores, también requiere un nombre de un usuario, con el cual procederá a ejecutar los comandos, de esta forma le damos a crontab a ejecutar comandos como cualquier usuarios en el sistema.
  • El usuario crontab: Es posible que un usuario pueda instalar sus propios trabajos usando el comando crontab. Pero también necesita un campo con el comando a ejecutar, y de nuevo se ejecutan como un usuario, pero en este caso, tiene la peculiaridad de que solo podrá ser lanzado por el usuario que creó el crontab. De esta forma, todos los usuarios pueden disponer de su propio archivo crontab, se almacenan en /var/spool/cron/crontabs, y no están destinados a ser editados de forma directa. Para ello tendremos que usar el comando crontab de forma que editamos o configuramos los trabajos propios, o creamos nuevos cron.
 

Impacto en el rendimiento

Llegados a este punto, es probable que ya pueda ver todos los beneficios que nos proporcionan este tipo de funciones. Pero esto es algo que se debe hacer con cuidado, siendo algo que va más allá que todas las configuraciones que podemos lanzar en los equipos. Tiene que ver con el rendimiento de los mismos. Cron y Crontab pueden tener un impacto en el rendimiento del dispositivo, con efectos negativos. Estos servicios de programación de tareas en los sistemas operativos de Unix y Linux, pueden automatizar un montón de procesos. Pero es algo con lo que no podemos pasarnos, ya que pueden tener efectos en actualizaciones de bases de datos o en relación con las copias de seguridad. Lo cual necesita cierto rendimiento en algunos casos.

Cuando creamos muchas reglas de cron y crontab, el sistema se puede ver afectado de diferentes formas. Estas son:

  • Consumo de recursos: Todas las tareas que tiene un equipo programadas, se ejecutan de forma automática cuando llega el momento programado. Esto puede hacer que el equipo tenga un pico de consumo en la CPU y la memoria RAM. Si el dispositivo está ejecutando alguna tarea muy pesada, es posible que no nos interese que algo entre a consumir recursos. Así como si se ejecutan muchas órdenes de forma simultánea, puede verse mermado el rendimiento de forma generalizada.
  • Sobrecarga en la red: Cuando las tareas que programamos tienen a la conexión de red involucrada, como pueden ser las transferencias de datos, podemos afectar a la propia red. Esto puede ocupar ancho de banda, como efecto principal. Y sin olvidarnos del consumo de recursos en la red y el equipo, es posible que en ocasiones aumenta la latencia y el ping.
  • Conflicto de tareas: Al programar muchas tareas de forma simultánea, hay alguna posibilidad de que llegue a contradecirse alguna. Esto genera conflictos, que afectan directamente al rendimiento del equipo, y en algunos casos a la red en donde estamos conectados. Por ejemplo, dos tareas que se ejecutan a la vez sobre un archivo, con tareas diferentes, puede generar este tipo de conflicto.
 

Mejoras de rendimiento

Como puedes ver, Cron Y Crontab son herramientas muy útiles para automatizar tareas. Y aunque no son funciones que van a consumir demasiados recursos, es algo que podemos prevenir un poco con ellas mismas. Resumiendo, podemos crear tareas que se encarguen de mantener el equipo en el mejor estado posible en cuanto a rendimiento de forma generalizada. Para ello podemos empezar por una tarea, la cual se encargue de limpiar de forma regular la memoria caché del sistema. Esta se puede llenar con archivos temporales, y restos de aplicaciones eliminadas que ya no necesitamos. Y el espacio que ocupan es muy valioso y puede ralentizar el sistema. Por lo cual, limpiarla de forma regular es muy recomendable. Y si se puede hacer mediante una tarea automática, mucho mejor.

Otro muy buen uso, es programar las actualizaciones del sistema, junto con las aplicaciones que contiene. Estas actualizaciones suelen contener no solo mejoras de seguridad o nuevas funcionalidades, sino que los desarrolladores también trabajan mucho en el rendimiento de sus aplicaciones y sistema operativos. Utilizar una tarea para que se mantengan actualizados, puede hacer que nuestro equipo funcione mejor. La mejor forma es programarla en horas que no se utilice el sistema. De este modo, no supondrá un corte en la productividad. Del mismo modo, podemos crear automatizaciones, que se encarguen de cerrar aplicaciones que no estamos utilizando por un tiempo definido. Esto dejará más espacio a las demás, y funcionarán mejor.

Pero eso no es todo, sino que también vamos a poder realizar labores de monitorización y registro, sobre el rendimiento del sistema. Por ejemplo, se pueden programar scripts que se encarguen de registrar de forma regular la utilización de la CPU, la memoria del disco curo, y luego dar uso de esos datos para poder identificar problemas y ponerles solución lo ante posibles. De este modo, también podremos realizar una gestión de recursos mucho mejor. Programando tareas de baja prioridad, para que solo se ejecuten cuando la utilización del equipo es baja durante un tiempo. Así tendremos todo el rendimiento posible cuando sea necesario para otras tareas.

 

Desventajas de usar Cron y Crontab

Pese a que para la programación de tareas periódicas en sistemas Unix/Linux ofrece una gran flexibilidad, también tiene una serie de desventajas que hacen que no sea la mejor opción para todos.

  • Complejidad de la configuración: Si no conoces mucho este tipo de comandos y usos, te resultará difícil controlarlo correctamente, sobre todo si es tu primera vez con Linux, y no estás acostumbrado a usar comandos para todo.
  • Dependencia del sistema: Pese a que te sirvan en un momento dado, aprenderlos no será tan útil como crees, ya que solo lo tendremos en este sistema operativo, y, por tanto, ni en MacOS ni en Windows podrás utilizarlo, algo que limita a la mayoría de usuarios.
  • Seguridad: Si los archivos de configuración de cron no están bien protegidos, podrían ser objeto de manipulación maliciosa por parte de usuarios no autorizados, lo que podría comprometer la seguridad del sistema, por lo que hay que tener precaución.
  • Muy sencillo: Pese a que es excelente para tareas simples puede no ser la mejor opción para tareas más complejas. Algo que también asociamos a problemas de escalabilidad futura.
  • Dificultad para gestionar errores: La detección y solución de tareas automatizadas se hace complicada sin mucha información necesaria que Cron no nos proporciona, aunque sí algunas de sus alternativas que veremos ahora, por lo que tendrás que decidir cuál es mejor para el uso que quieres darle.
 

Alternativas a Cron y Crontab

Ahora que ya estamos familiarizados con Cron y Crontab, vamos a ver algunas alternativas que podemos utilizar para realizar tareas similares. Todas ellas tienen sus pequeñas peculiaridades, a pesar de realizar funciones diferentes.

La primera que nos vamos a encontrar es Anacron. Este no necesita que un equipo se encuentre siempre funcionando, y se puede ejecutar sus tareas para que se ejecuten en cualquier momento. En el caso de que el equipo esté apagado, la tarea se ejecutará cuando se encienda de nuevo. Este paquete está disponible en muchos paquetes de Linux, pero se puede instalar en caso de no disponer de él.

Fcron es otra de las alternativas. Este tampoco requiere que el equipo esté en funcionamiento, y puede trabajar con tareas asignadas a una hjora y minuto específico. Pero en este caso, será necesario realizar la instalación mediante un archivo de código fuente, y una vez compilado, podremos utilizarlo.

Algo más desconocido es hcron. El cual tiene algunas características interesantes, como por ejemplo la oportunidad de establecer etiquetas para organizar todo el trabajo correctamente, administrar una red, o directamente los archivos de usuarios. Lo cual también genera mejoras en la seguridad. Este paquete también es necesario instalarlo, pero si hay alguna distribución que lo incorpora de serie.

Pero si queremos realizar estas tareas con algún otro software externo, podemos hablar de Mcron, el cual es muy similar a los anteriores. Incluso así, tiene sus diferencias, las cuales pueden hacerlo muy útil para algunos administradores, y es que a diferencia de los anteriores, este permite redefinir la programación de tareas usando la reconstrucción de trabajos desde un punto inicial. Su instalación es muy sencilla y una vez instalado, podemos empezar a utilizarlo como nuestro programador de tareas, puesto que no es habitual que se encuentre incorporado de serie en ningúna versión.

Si buscas una alternativa a Cron que se ejecute en el sistema operativo de Windows, tienes algunas como WinCron, VisualCron o Advanced Task Scheduler, las cuales tienen funciones similares y con interfaz gráfica y botones, lo que hace mucho más sencillo su uso si no eres un experto en la materia.

 

Nivel de complejidad

Como puedes ver, estas herramientas se pueden utilizar en los sistemas operativos de Linux y Unix, y permiten la programación de tareas las cuales se deben ejecutar en momentos específicos. Estas son muy útiles para poder realizar una automatización de tareas, así como para que nuestro sistema se mantenga en el mejor estado posible. A pesar de que son herramientas que resultan sencillas, el nivel de complejidad que podemos alcanzar con ellas es muy alto.

En un principio, Cron se ejecuta en segundo plano, y realiza comprobaciones de forma continua de la configuración. En estos archivos es donde están especificadas las tareas que se deben llevar a cabo, y el momento en el cual se deben ejecutar. Para escribirlas, se debe utilizar un formato especial de tiempo, el cual indica el momento concreto. En estos casos, especificando la hora a la cual se debe ejecutar. Por otro lado, con Crontab podemos disponer de una herramienta que permite que los usuarios puedan crear, editar y eliminar las tareas que tiene Cron programadas. Para acceder a esto, se utiliza el comando crontab. Crontab abrirá los archivos en los editores de texto predeterminados, para que el usuario pueda modificar esa programación.

Según vamos añadiendo nuevas tareas a los archivos de configuración de Cron y Crontab, la complejidad del sistema aumentará. Por otro lado, debemos tener en cuenta, que, si programamos tareas con altas frecuencias, pueden consumir muchos recursos de los equipos. Afectando así al rendimiento del sistema. Por lo cual es importante tener algunos conocimientos acerca de cómo funciona todo esto, y así programar tareas que sean útiles y eficientes, evitando así todos los problemas que puedan llegar a aparecer. Como en todo lo relacionado, mantener la seguridad y estabilidad del sistema, es algo muy importante. Sobre todo, si se trata de equipos profesionales, donde toda tarea que se ejecuta en el mismo puede ser de gran importancia.

 

Cron y Crontab para empresas

Con estas dos funciones, estamos ante un sistema perfecto para implementar en el sector empresarial. Esto nos ayudará a programar tareas que pueden resultar repetitivas, por lo cual los administradores pueden estar pendientes de otras cosas. Estos proporcionan una forma muy eficiente de programar la ejecución de diferentes scripts, comandos y también programas. Debido al alto grado de personalización, podremos programar prácticamente lo que sea necesario y sea beneficioso para la organización y las tareas que se realizan en su entorno.

Estos sistemas ofrecen varias ventajas a nivel empresarial. La primera es la que comentamos, la capacidad de programar esas tareas más tediosas para que no sea necesaria la intervención manual. Lo cual ahorra tiempo, y reduce el riesgo de que aparezcan posibles errores relacionados con errores humanos. Algunos de los métodos más comunes son para copias de seguridad, actualizaciones de software, generar informes o la ejecución de procesos de mantenimiento. Pero a todo esto también le sumamos la flexibilidad para la programación. Todos los beneficios que hemos visto previamente de cron y crontab, los tendremos disponibles a nivel empresarial. Por lo cual las opciones para crear este tipo de automatizaciones son muy abundantes.

Todo ello puede traer beneficios indirectos para la empresa. Empezando por la eficiencia y la productividad, sobre todo al liberar a los empleados de tareas más rutinarias y repetitivas. Esto hace que se puedan centrar en tareas que pueden resultar más estratégicas, y con un valor muy alto para la compañía. Estas automatizaciones, hacen que la carga de trabajo manual sea menor, por lo cual los recursos de la empresa se van a optimizar desde el primer momento. En todo caso, implementar estos sistemas requiere conocimientos. Por lo cual se debe estudiar detenidamente, y ver en qué puntos puede ser mucho más eficaz.

 

Programar tareas en Windows

Seguramente en algún punto del post, te has preguntado si todo esto es compatible con Windows. Pero incluso con las posturas entre los dos sistemas operativos más cercanas que nunca, lo cierto es que Windows cuenta con su propio gestor de programación de tareas. Se trata de un método más sencillo, por interfaz gráfica, y tan eficaz como estos dos comandos. Realizar tareas repetitivas, establecer horarios, recordatorios, todo se puede configurar de igual forma en Windows.

El proceso es sencillo, simplemente tendremos que ir a la barra de búsqueda de Windows, y escribir «Programar tareas», y entrar. Una vez abierta veremos todas las opciones que tenemos disponibles, las cuales nos dan bastante libertad de edición. A lo cual podemos añadir scripts en archivos bat, lo cual hace de todo este proceso algo muchísimo más completo.

Según navegamos por todos los menús, vemos que Windows nos facilita mucho el proceso, indicándonos dónde poner cada cosa hasta finalizar el proceso, el cual puede ser tan creativo como queramos. Una vez finalizado, también nos dará algunas opciones para realizar la tarea programada. En este momento, la tarea estará lista para ser ejecutada cuando hayamos establecido. De lo contrario, tendremos que acudir a borrarla, y simplemente no se ejecutará nunca más.

Con respecto a los archivos .bat, en los cuales podemos programar también tareas, y estos a su vez combinarlos con otras tareas, puede resultar un poco más complicado. Esto es porque se requieren ciertas nociones de programación, las cuales pueden ser tan extensas como queramos. De nuevo la creatividad puede jugar un papel muy importante en todo esto. Lo que debemos tener en cuenta, es que tanto con archivos .bat como con el programador de tareas, podemos automatizar nuestro equipo hasta puntos muy elevados, y a la vez complejos.

Cómo has podido ver, programar la ejecución de tareas no es nada complicado y se puede realizar de forma rápida si se tiene claro todo lo mencionado en este tutorial. Hemos mostrado cómo funciona Cron y Crontab, dos opciones que vas a tener disponibles para que una tarea se ejecute en un momento determinado de tiempo. Si usas alguna distribución de Linux, vas a poder utilizarlos sin problemas. Podrás adaptar el tiempo y la automatización de procesos según necesites.

2 Comentarios
Logo redeszone.net
Navega gratis con cookies…

Navegar por redeszone.net con publicidad personalizada, seguimiento y cookies de forma gratuita. i

Para ello, nosotros y nuestros socios i necesitamos tu consentimiento i para el tratamiento de datos personales i para los siguientes fines:

Las cookies, los identificadores de dispositivos o los identificadores online de similares características (p. ej., los identificadores basados en inicio de sesión, los identificadores asignados aleatoriamente, los identificadores basados en la red), junto con otra información (p. ej., la información y el tipo del navegador, el idioma, el tamaño de la pantalla, las tecnologías compatibles, etc.), pueden almacenarse o leerse en tu dispositivo a fin de reconocerlo siempre que se conecte a una aplicación o a una página web para una o varias de los finalidades que se recogen en el presente texto.

La mayoría de las finalidades que se explican en este texto dependen del almacenamiento o del acceso a la información de tu dispositivo cuando utilizas una aplicación o visitas una página web. Por ejemplo, es posible que un proveedor o un editor/medio de comunicación necesiten almacenar una cookie en tu dispositivo la primera vez que visite una página web a fin de poder reconocer tu dispositivo las próximas veces que vuelva a visitarla (accediendo a esta cookie cada vez que lo haga).

La publicidad y el contenido pueden personalizarse basándose en tu perfil. Tu actividad en este servicio puede utilizarse para crear o mejorar un perfil sobre tu persona para recibir publicidad o contenido personalizados. El rendimiento de la publicidad y del contenido puede medirse. Los informes pueden generarse en función de tu actividad y la de otros usuarios. Tu actividad en este servicio puede ayudar a desarrollar y mejorar productos y servicios.

La publicidad que se presenta en este servicio puede basarse en datos limitados, tales como la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que está interactuando (o con el que ha interactuado) (por ejemplo, para limitar el número de veces que se presenta un anuncio concreto).

  • Un fabricante de automóviles quiere promocionar sus vehículos eléctricos a los usuarios respetuosos con el medioambiente que viven en la ciudad fuera del horario laboral. La publicidad se presenta en una página con contenido relacionado (como un artículo sobre medidas contra el cambio climático) después de las 18:30 h a los usuarios cuya ubicación no precisa sugiera que se encuentran en una zona urbana.
  • Un importante fabricante de acuarelas quiere realizar una campaña publicitaria en Internet para dar a conocer su última gama de acuarelas con la finalidad de llegar tanto a artistas aficionados como a profesionales y, a su vez, se evite mostrar el anuncio junto a otro contenido no relacionado (por ejemplo, artículos sobre cómo pintar una casa). Se detectará y limitará el número de veces que se ha presentado el anuncio a fin de no mostrarlo demasiadas veces.

La información sobre tu actividad en este servicio (por ejemplo, los formularios que rellenes, el contenido que estás consumiendo) puede almacenarse y combinarse con otra información que se tenga sobre tu persona o sobre usuarios similares(por ejemplo, información sobre tu actividad previa en este servicio y en otras páginas web o aplicaciones). Posteriormente, esto se utilizará para crear o mejorar un perfil sobre tu persona (que podría incluir posibles intereses y aspectos personales). Tu perfil puede utilizarse (también en un momento posterior) para mostrarte publicidad que pueda parecerte más relevante en función de tus posibles intereses, ya sea por parte nuestra o de terceros.

  • En una plataforma de redes sociales has leído varios artículos sobre cómo construir una casa en un árbol Esta información podría añadirse a un perfil determinado para indicar tuinterés en el contenido relacionado con la naturaleza, así como en los tutoriales de bricolaje (con el objetivo de permitir la personalización del contenido, de modo que en el futuro, por ejemplo, se te muestren más publicaciones de blogs y artículos sobre casas en árboles y cabañas de madera).
  • Has visualizado tres vídeos sobre la exploración espacial en diferentes aplicaciones de televisión. Una plataforma de noticias sin relación con las anteriores y con la que no has tenido contacto en el pasado crea un perfil basado en esa conducta de visualización marcando la exploración del espacio como un tema de tu posible interés para para otros vídeos.

El contenido que se te presenta en este servicio puede basarse en un perfilde personalización de contenido que se haya realizado previamente sobre tu persona, lo que puede reflejar tu actividad en este u otros servicios (por ejemplo, los formularios con los que interactúas o el contenido que visualizas), tus posibles intereses y aspectos personales. Un ejemplo de lo anterior sería la adaptación del orden en el que se te presenta el contenido, para que así te resulte más sencillo encontrar el contenido (no publicitario) que coincida con tus intereses.

  • Has leído unos artículos sobre comida vegetariana en una plataforma de redes sociales. Posteriormente has usado una aplicación de cocina de una empresa sin relación con la anterior plataforma. El perfil que se ha creado sobre tu persona en la plataforma de redes sociales se utilizará para mostrarte recetas vegetarianas en la pantalla de bienvenida de la aplicación de cocina.
  • Has visualizado tres vídeos sobre remo en páginas web diferentes. Una plataforma de video, no relacionada con la página web en la que has visualizado los vídeos sobre remo, pero basandose en el perfil creado cuando visistaste dicha web, podrá recomendarte otros 5 vídeos sobre remo cuando utilices la plataforma de video a través de tu televisor .

La información sobre qué publicidad se te presenta y sobre la forma en que interactúas con ella puede utilizarse para determinar lo bien que ha funcionado un anuncio en tu caso o en el de otros usuarios y si se han alcanzado los objetivos publicitarios. Por ejemplo, si has visualizado un anuncio, si has hecho clic sobre el mismo, si eso te ha llevado posteriormente a comprar un producto o a visitar una página web, etc. Esto resulta muy útil para comprender la relevancia de las campañas publicitarias./p>

  • Has hecho clic en un anuncio en una página web/medio de comunicación sobre descuentos realizados por una tienda online con motivo del “Black Friday” online y posteriormente has comprado un producto. Ese clic que has hecho estará vinculado a esa compra. Tu interacción y la de otros usuarios se medirán para saber el número de clics en el anuncio que han terminado en compra.
  • Usted es una de las pocas personas que ha hecho clic en un anuncio que promociona un descuento por el “Día de la madre”de una tienda de regalos en Internet dentro de la aplicación de una web/medio de comunicación. El medio de comunicación quiere contar con informes para comprender con qué frecuencia usted y otros usuarios han visualizado o han hecho clic en un anuncio determinado dentro de la aplicación y, en particular, en el anuncio del “Día de la madre” para así ayudar al medio de comunicación y a sus socios (por ejemplo, las agencias de publicidad) a optimizar la ubicación de los anuncios.

La información sobre qué contenido se te presenta y sobre la forma en que interactúas con él puede utilizarse para determinar, por ejemplo, si el contenido (no publicitario) ha llegado a su público previsto y ha coincidido con sus intereses. Por ejemplo, si hasleído un artículo, si has visualizado un vídeo, si has escuchado un “pódcast” o si has consultado la descripción de un producto, cuánto tiempo has pasado en esos servicios y en las páginas web que has visitado, etc. Esto resulta muy útil para comprender la relevancia del contenido (no publicitario) que se te muestra.

  • Has leído una publicación en un blog sobre senderismo desde la aplicación móvil de un editor/medio de comunicación y has seguido un enlace a una publicación recomendada y relacionada con esa publicación. Tus interacciones se registrarán para indicar que la publicación inicial sobre senderismo te ha resultado útil y que la misma ha tenido éxito a la hora de ganarse tu interés en la publicación relacionada. Esto se medirá para saber si deben publicarse más contenidos sobre senderismo en el futuro y para saber dónde emplazarlos en la pantalla de inicio de la aplicación móvil.
  • Se te ha presentado un vídeo sobre tendencias de moda, pero tu y otros usuarios habéis dejado de visualizarlo transcurridos unos 30 segundos. Esta información se utilizará para valorar la duración óptima de los futuros vídeos sobre tendencias de moda.

Se pueden generar informes basados en la combinación de conjuntos de datos (como perfiles de usuario, estadísticas, estudios de mercado, datos analíticos) respecto a tus interacciones y las de otros usuarios con el contenido publicitario (o no publicitario) para identificar las características comunes (por ejemplo, para determinar qué público objetivo es más receptivo a una campaña publicitaria o a ciertos contenidos).

  • El propietario de una librería que opera en Internet quiere contar con informes comerciales que muestren la proporción de visitantes que han visitado su página y se han ido sin comprar nada o que han consultado y comprado la última autobiografía publicada, así como la edad media y la distribución de género para cada uno de los dos grupos de visitantes. Posteriormente, los datos relacionados con la navegación que realizas en su página y sobre tus características personales se utilizan y combinan con otros datos para crear estas estadísticas.
  • Un anunciante quiere tener una mayor comprensión del tipo de público que interactúa con sus anuncios. Por ello, acude a un instituto de investigación con el fin de comparar las características de los usuarios que han interactuado con el anuncio con los atributos típicos de usuarios de plataformas similares en diferentes dispositivos. Esta comparación revela al anunciante que su público publicitario está accediendo principalmente a los anuncios a través de dispositivos móviles y que es probable que su rango de edad se encuentre entre los 45 y los 60 años.

La información sobre tu actividad en este servicio, como tu interacción con los anuncios o con el contenido, puede resultar muy útil para mejorar productos y servicios, así como para crear otros nuevos en base a las interacciones de los usuarios, el tipo de audiencia, etc. Esta finalidad específica no incluye el desarrollo ni la mejora de los perfiles de usuario y de identificadores.

  • Una plataforma tecnológica que opera con un proveedor de redes sociales observa un crecimiento en los usuarios de aplicaciones móviles y se da cuenta de que, en funciónde sus perfiles, muchos de ellos se conectan a través de conexiones móviles. La plataforma utiliza una tecnología nueva para mostrar anuncios con un formato óptimo para los dispositivos móviles y con un ancho de banda bajo a fin de mejorar su rendimiento.
  • Un anunciante está buscando una forma de mostrar anuncios en un nuevo tipo de dispositivo. El anunciante recopila información sobre la forma en que los usuarios interactúan con este nuevo tipo de dispositivo con el fin de determinar si puede crear un nuevo mecanismo para mostrar la publicidad en ese tipo de dispositivo.

El contenido que se presenta en este servicio puede basarse en datos limitados, como por ejemplo la página web o la aplicación que esté utilizando, tu ubicación no precisa, el tipo de dispositivo o el contenido con el que estás interactuando (o con el que has interactuado) (por ejemplo, para limitar el número de veces que se te presenta un vídeo o un artículo en concreto).

  • Una revista de viajes, para mejorar las experiencias de viaje en el extranjero, ha publicado en su página web un artículo sobre nuevos cursos que ofrece una escuela de idiomas por Internet. Las publicaciones del blog de la escuela se insertan directamente en la parte inferior de la página y se seleccionan en función de la ubicación no precisa del usuario (por ejemplo, publicaciones del blog que explican el plan de estudios del curso para idiomas diferentes al del país en el que este te encuentras).
  • Una aplicación móvil de noticias deportivas ha iniciado una nueva sección de artículos sobre los últimos partidos de fútbol. Cada artículo incluye vídeos alojados por una plataforma de streaming independiente que muestra los aspectos destacados de cada partido. Si adelantas un vídeo, esta información puede utilizarse para determinar que el siguiente vídeo a reproducir sea de menor duración.

Se puede utilizar la localización geográfica precisa y la información sobre las características del dispositivo

Al contar con tu aprobación, tu ubicación exacta (dentro de un radio inferior a 500 metros) podrá utilizarse para apoyar las finalidades que se explican en este documento.

Con tu aceptación, se pueden solicitar y utilizar ciertas características específicas de tu dispositivo para distinguirlo de otros (por ejemplo, las fuentes o complementos instalados y la resolución de su pantalla) en apoyo de las finalidades que se explican en este documento.

O sin cookies desde 1,67€ al mes

Por solo 1,67€ al mes, disfruta de una navegación sin interrupciones por toda la red del Grupo ADSLZone: adslzone.net, movilzona.es, testdevelocidad.es, lamanzanamordida.net, hardzone.es, softzone.es, redeszone.net, topesdegama.com y más. Al unirte a nuestra comunidad, no solo estarás apoyando nuestro trabajo, sino que también te beneficiarás de una experiencia online sin cookies.