Llévate los mejores 📘EBOOKS📘 ➡ ENTRA AQUÍ

Cron en Linux ¿Qué es, para qué sirve y cómo sacarle el máximo provecho a esta herramienta?

publicidad

Si eres usuario de Linux seguramente has escuchado hablar sobre lo que es cron, esta es una herramienta muy similar al administrador de tareas de programa de Windows, por lo que su función es permitir la configuración de un programa, proceso o archivo que se esté ejecutando en el sistema. En el caso del sistema operativo de Linux esto no se ejecuta desde un entorno gráfico, sino desde la terminal.

Este tipo de funciones tiene como objetivo ayudarles a los usuarios a mejorar su productividad al momento de trabajar en dicho sistema, para ello también es importante evitar iniciar tareas repetitivas. Al contar con una herramienta como cron los usuarios tienen la posibilidad de ejecutar tareas según la programación de tarea que se haya establecido previamente, ofreciéndoles una mayor comodidad de uso.

Por lo tanto, se puede decir que cron es un administrador de tareas de Linux que permite llevar a cabo la ejecución de comandos en un momento determinado, estas pueden programarse para que se ejecuten cada hora, todos los días, una vez a la semana, entre otros. Para trabajar con cron será necesario hacerlo a través del comando crontab. Es así como aquí te vamos a enseñar un poco más sobre qué trata esta herramienta y cómo puedes sacarle el máximo provecho.

publicidad

¿Qué es Cron y para qué sirve este servicio del sistema operativo Linux?

¿Qué es Cron y para qué sirve este servicio del sistema operativo Linux?

publicidad

Cron es una herramienta de Linux que permite llevar a cabo procesos en segundo plano siendo esto un procedimiento muy importante y habitual en el sistema. La ejecución del mismo se da apenas se inicia el arranque del equipo y su función principal es la de poder encargarse de todas las tareas programadas con una fecha en especifica y de forma automática y repetitiva. Cada uno de los procesos a ejecutarse debe ser especificado en el fichero de crontab.

El funcionamiento de todo esto es muy simple, allí debe verificar si existen tareas pendientes para su ejecución de acuerdo al horario del sistema. Ten en cuenta que es muy importante tener ajustada correctamente la hora del equipo, ya que dependiendo de ella se realizarán cada una de las actividades pendientes, esto quiere decir que si la hora del sistema no está configurada correctamente los resultados de las actividades programadas con cron no serán los esperados.

Finalmente hay que mencionar que dependiendo de la distribución que se esté utilizando en Linux, se puede iniciar usando los directorios/etc/init.d o etc/rc,d/ y cada minuto realiza un chequeo de los /etc/crontab o /var/spool/cron ubicando allí las posibles tareas pendientes por ejecutarse.

Recomendado para ti:
¿Cómo poner música en tus vídeos de Twitch sin copyright y poder monetizar tus vídeos sin limitaciones? Guía paso a paso

¿Qué tipo de tareas se pueden realizar desde Cron? Principales aplicaciones

Es importante tener presente que las tareas de cron es un comando de Linux que tiene como función principal ejecutar periódicamente un script o comando indicado por el usuario. Es así como este tipo de función es utilizada para llevar a cabo la ejecución periódica o repetitiva de scripts relacionados con las notificaciones de email, comprobaciones rutinarias de datos, base de datos, iniciar programas, entre otros tipos de actividades allí disponibles.

Por lo tanto, en cron vas a tener la oportunidad de ejecutar cualquier acción que se repetitiva, un ejemplo de esto para que lo puedas comprender mejor sería el siguiente: Crear una tarea cron para que ejecute periódicamente un script que compruebe la temperatura de una estación meteorológica cualquiera, esto permitirá saber la temperatura de la zona y frecuentemente mostrarla en tu sitio web.

Al momento de está creando esta tarea vas a tener la oportunidad de indicar con qué frecuencia el script debe ser ejecutado, ya sea cada minuto, cada hora, 10 veces al día o solo algunos días al año. La programación de dicha actividad si dependerá principalmente de las necesidades de cada uno de los usuarios y de los objetivos que quieran lograr con ello.

Aprende paso a paso cómo utilizar Cron en Linux como todo un experto

Aprende paso a paso cómo utilizar Cron en Linux como todo un experto

Si eres un nuevo usuario de Linux y aún no sabes muy bien cómo utilizar la herramienta de cron en tu ordenador, entonces aquí te vamos a enseñar paso a paso cómo puedes utilizarla como todo un experto.

Para ello sigue cada uno de los pasos que te vamos a enseñar a continuación:

Iniciar Cron

Hay que tener presente que cron es un servicio que solo requiere ser iniciado una sola vez, mayormente se inicia con el mismo arranque del sistema de manera automática. Este servicio de cron es conocido como crond y está disponible en todas las distribuciones de Linux. También hay que tener en cuenta que en la mayoría de las distribuciones de Linux este servicio se instala automáticamente y se inicia siempre junto con el arranque del sistema.

Esto se puede comprar de las siguientes maneras:

  • #> /etc/rc.d/init.d/crond status
  • #> /etc/init.d/crond status

Aquí puedes usar cualquiera de los dos dependiendo de la distro que uses.

Ahora si tienes el comando service instalado en el equipo entonces usa el siguiente:

  • #> service crond status. Crond (pid 507) is running.

Otra forma de chequear todo esto es revisándolo a través del comando ps:

  • # ps -ef |  grep crond

Si por alguna razón has notado que el comando cron no está funcionando o lo está haciendo de mala manera entonces puedes revisarlo de la siguiente forma:

  • #> /etc/rc.d/init.d/crond start

Si por alguna razón el servicio cron no está configurado para ejecutarse con el arranque desde un principio lo puedes solucionar a través del comando >chkconfig:

  • #> chkconfig --level 35 crond on

De esta forma lo vas a agregar al nivel de ejecución 3 y 5 para que este se inicie al momento de arranque del sistema.

Recomendado para ti:
Principios de Protección de Datos Personales ¿Qué son, para qué sirven y cuáles son los más importantes que debes conocer?

Usar Cron desde directorio etc

Otra manera de poder usar cron es a través del directorio etc a partir de dos manera, con la primera de ella vas a encontrar los siguientes directorios:

  • Cron daily.
  • Cron weekly.
  • Cron hourly.
  • Cron monthly.
publicidad


"ACTUALIZADO ✅ ¿Quieres conocer sobre la herramienta Cron de Linux y cuál es su utilidad? ⭐ ENTRA AQUÍ ⭐ y Aprende Todo ¡DESDE CERO!"
publicidad
publicidad

Al colocar un archivo tipo script en cualquiera de estos directorios, entonces el archivo script quedara configurado para que se pueda ejecutar cada hora, cada día, cada semana, cada mes, dependiendo del directorio que se haya seleccionado.

Sin embargo, para que el archivo pueda ser ejecutado debe ser algo similar a lo siguiente:

#!/bin/sh

#script que genera un respaldo

cd /usr/documentos

tar czf * respaldo

cp respaldo /otra_directorio/.

Como se puede ver la primera línea comienza con los símbolos #!, esto indica que se trata de un script Shell de bash, mientras que las demás líneas se tratan de comandos que deseamos que ejecute el script.

El mismo puede llamarse como respaldo y cambiarle los permisos correspondientes para que pueda ser ejecutado como por ejemplo:

#> chmod 700 respaldo.sh

#> ls -l respaldo.sh

-rwx------ 1 root root 0 Jul 20 09:30 respaldo.sh

Como se puede ver en el grupo de permisos del propietario se encuentra una x (rwx) esto indica que el mismo puede ser ejecutado. Si dicho archivo script se deja con cron hourly, el mismo se va a estar ejecutando cada hora con un minuto de todos los días.

La otra manera de poder usar cron es manipulando directamente el archivo/etc/crontab, durante su instalación por defecto en algunas de las distribuciones de Linux el mismo se verá de la siguiente manera:

#> cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

#> cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

En el caso de las primeras cuatro líneas se tratan de variables que indican lo siguiente:

  • Shell: Se trata del Shell bajo el cual se está ejecutando cron, en el caso que esto no sea especificado, entonces se tomará por defecto el indicado en la línea /etc/passwd correspondiente al usuario que esté ejecutando el cron en ese momento.
  • Path: Es aquel que se encarga de indicar la ruta de los directorios en los cuales cron buscará el comando a ejecutar. Hay que mencionar que este path es diferentes al path global del sistema o del usuario.
  • Mail to: Es aquí donde se envía la salida del comando en el caso que el mismo tenga una salida. Entonces cron enviará un correo a quien se especifique en esta variable, por lo que debe tratarse de un usuario válido en el sistema o de algún otro sistema. Ahora si no se especifica esto, entonces cron enviará el correo al propietario del comando que se ejecuta.
  • Home: Se trata del directorio raíz o principal del comando cron, en el caso que este no se indique, entonces la raíz será la que se indique en el archivo /etc/passwd correspondiente al usuario que ejecuta cron.
Recomendado para ti:
Direcciones IP ¿Qué son, cómo se clasifican y cuáles son sus tipos y usos?

Los comandos siempre se van a indicar con el símbolo de # al comienzo de la línea, esto te permitirá diferenciarlos. Después de todo lo anterior se encuentras las líneas que ejecutan las tareas programadas propiamente.

Ten en cuenta que aquí no existen límites de cuantas tareas pueda haber, los campos por lo general son siete y todas estas líneas están formadas de la siguiente manera:

  • Minuto: es la encargada de controlar el minuto de la hora en la que el comando será ejecutado, este es un valor que debe encontrarse entre el rango de 0 y 59.
  • Hora: aquí se controlará la hora en la que el comando va a ser ejecutado, para ello se especifica un formato de 24 horas y dichos valores deben encontrarse dentro de un rango de 0 y 23 o en tal caso 0 que sería medianoche.
  • Día del mes: se debe indicar el día del mes en el que se va a ejecutar el comando, si se quiere ejecutar el comando el día 15 del mes, entonces debes colocar 15.
  • Mes: en el caso que quieras que el comando se ejecute en un mes en específico, entonces aquí debes seleccionarlo, para ello puede ser indicar por un número que debe ir entre 1 y 12 o por el nombre del mes en inglés o solo las primeras tres letras del mismo.
  • Día de la semana: si el mismo va a ser ejecutado un día a la semana, entonces lo puedes indicar con un valor numérico entre 0 y 7 o por el nombre del día en inglés o solo coloca las tres primeras letras del día.
  • Usuario: El usuario que está ejecutando el comando.
  • Comando: comando, programa o script que se quiere ejecutar, este es un campo que puede contener múltiples espacios o palabras.

De esta manera se puede empezar a especificar en qué momento se quiere ejecutar una tarea en especifica.

Utilizar Cron con Crontab

En el caso que se quiere ejecutar cron en múltiples usuarios, entonces será necesario hacerlo con crontab, para ello hay que tener presente que Linux es un sistema operativo multiusuario y cron es un servicio que ha sido creado para ello, por lo que podrá desarrollarse muy bien. En este caso cada uno de los usuarios puede contar con su propio archivo crontab, de hecho el archivo etc/crontab se asume que es el archivo del usuario root, pero no pasa nada si son incluidos otros usuarios.

Recomendado para ti:
WiFi 6: ¿Qué es, para qué sirve y en qué supera al protocolo actual?

De esta manera también se va a indicar quien es el usuario que está ejecutando la tarea y es obligatorio en /etc/crontab. Pero en el caso que los usuarios tengan que generar su propio archivo crontab, entonces será necesario utilizar el comando crontab. En el directorio de /var/spool/cron el mismo puede variar dependiendo de la distribución Linux que uses, se va a generar un archivo cron para cada uno de los usuarios, a pesar de que el archivo es de texto no deberá editarse directamente.

Por lo tanto, solo se tienen dos situaciones para poder generar directamente el archivo crontab con el comando:

  • $> crontab –e

Con esto se puede abrir el editor y con el archivo llamado crontab vacío será donde el usuario ingrese  su tabla de tareas y que se guarde automáticamente como /var/spool/cron/usuario. El otro caso posible es que el usuario se encargue de editar un archivo de texto normal pero con las entradas de las tareas como lo puede ser “mi_cron” posteriormente el comando $> crontab mi_cron, el mismo será el encargado de establecerlo como su archivo cron del usuario en /var/spool/cron/usuario.

Veamos a continuación:

$> vi mi_cron

# borra archivos de carpeta compartida

0 20 * * * rm -f /home/sergio/compartidos/*

# ejecuta un script que realiza un respaldo de la carpeta documentos el primer día de cada mes

0 22 1 * * /home/sergio/respaldomensual.sh

# cada 5 horas de lun a vie, se asegura que los permisos sean los correctos en mi home

1 *5 * * * 1-5 chmod -R 640 /home/sergio/*

:wq (se guarda el archivo)

$> ls

mi_cron

$> crontab mi_cron

(se establece en /var/spool/cron/usuario)

Teniendo en cuenta todo lo mencionado anteriormente y considerando otras de las opciones de contrab tenemos lo siguiente:

$> crontab archivo.cron (establecerá el archivo.cron como el crontab del usuario)

$> crontab -e (abrirá el editor preestablecido donde se podrá crear o editar el archivo crontab)

$> crontab -l (lista el crontab actual del usuario, sus tareas de cron)

$> crontab -r (elimina el crontab actual del usuario)

En algunas de las distribuciones del sistema operativo de Linux cuando se editan los crontab de usuarios normales es necesario aplicar un reinicio al servicio para que este pueda releer todo los archivos crontab en /var/spool/cron.

Ebooks de IPAP
Ebooks IPAP

Si te quedaste con alguna duda, déjalas en los comentarios, te contestaremos lo antes posible, además seguro que será de gran ayuda para más miembros de la comunidad. Gracias! 😉

Más Trucos y Consejos cada día ¡Apúntate Aquí!


He leído y acepto los términos y condiciones

Temas

Etiquetas:
Autor: Nely Zambrano

Tengo gran experiencia en el ámbito tecnológico, mis especialidades son el diseño gráfico, las redes sociales y el Marketing Digital. Windows y Android son mi especialidad.

Publicidad

Relacionadas

Populares

Deja un comentario

  ◀ Acepto los términos de privacidad