Programar tareas con cron y crontab en Linux

Programar tareas con cron y crontab en Linux

Cron es un administrador de tareas basado en tiempo que se usa para automatizar y programar tareas repetitivas, recopilación periódica de datos, avisos, etc. El demonio cron o crond permite a los usuarios administrar y ejecutar tareas automáticamente en intervalos de tiempo específicos. Es una de las herramientas clave para programar tareas en Linux y sistemas operativos basados en Unix.

Cron

Cron es una herramienta de línea de comandos ideada para programar tareas («cron jobs» en inglés), para ejecutarlas periódicamente y automáticamente, en la fecha y hora programada. Este administrador de tareas se puede usar para muchos fines, como:

  • Recolectar logs del sistema.
  • Crear copias de seguridad.
  • Descargar emails o archivos de Internet.
  • Programar el mantenimiento del sistema.
  • Sincronizar archivos.

Las tareas se ejecutan en segundo plano, sin alterar las funcionalidades de Linux. Los usuarios pueden configurar una lista infinita de tareas cron para que se ejecuten según lo programado —cada x minuto, hora, día, mes o año—. La lista de tareas se almacena en un archivo llamado crontab.

Crontab

Crontab, abreviatura de «cron table», es tanto un comando como el archivo que contiene las tareas que el demonio cron tiene que ejecutar periódicamente. Cada usuario tiene su propio archivo de configuración y gestiona sus tareas programadas. Las tareas enumeradas en el archivo crontab contienen los comandos junto con su fecha y hora de ejecución. De modo que el administrador cron de Linux pueda ejecutar los scripts tal y como están programados al acceder y analizar el archivo.

Cron jobs 

Las tareas cron tienen la siguiente sintaxis:

min  h  d/m  mes  d/s  <comando a ejecutar>

Se formatean con los siguientes campos:

CampoValores
min (minuto)0-59
h (hora)0-23
d/m (día del mes)1-31
mes (mes)1-12
d/s (día de la semana)0-6 (domingo-sábado)
ComandoEl comando de Linux que se desea programar.

Así como con diferentes caracteres especiales, como:

Carácter especialUso
*Seleccionar todos los valores posibles en un campo.
*El asterisco se puede usar para rellenar un campo sin ningún valor específico, puesto que es obligatorio rellenar todos los campos al crear una tarea cron.
/Especificar un intervalo de tiempo.
,Seleccionar múltiples valores.
-Especificar un rango de tiempo.

Ejemplos de tareas cron programadas en crontab

  • Ejecutar el comando cada día a las doce y media de la noche:
30  0  *  *  *  <comando a ejecutar>
  • Ejecutar el comando cada sábado a las dos de la noche:
0  2  *  *  6  <comando a ejecutar>
  • Ejecutar el comando a medianoche el primer día del año:
0  0  1  1  *  <comando a ejecutar>
  • Ejecutar el comando cada cinco minutos de lunes a viernes:
*/5  *  *  *  1-5  <comando a ejecutar>

Atajos de crontab

Asimismo, para simplificar las programaciones más habituales, existen algunos atajos o comandos especiales:

AtajoProgramación
@rebootEjecutar la tarea cuando se reinicia el sistema.
@yearly o @annuallyEjecutar la tarea una vez al año.
@monthlyEjecutar la tarea el primer día de cada mes (0 0 1 * *).
@weeklyEjecutar la tarea el primer día de cada semana (0 0 * * 0).
@daily o @midnightEjecutar la tarea cada día a medianoche (0 0 * * *).
@hourlyEjecutar la tarea cada hora (0 * * * *).
Resumen de la sintaxis de las tareas cron o cron jobs, incluidos los carácteres especiales y los atajos de crontab

Comando crontab

Para gestionar tareas programadas, se pueden añadir las siguientes opciones al comando crontab:

  • -e para editar el archivo crontab actual.
  • -l para obtener una lista de las tareas del archivo crontab actual.
  • -r para eliminar de forma permanente el archivo crontab actual.
  • -u <usuario> <opción> para ejecutar una opción en el archivo crontab de otro usuario.

¿Necesitas ayuda con la administración de sistemas y servidores? Hablemos.

Si te ha gustado, compártelo en redes sociales

Servicios gestionados

Servicios de administración de sistema con acceso directo a soporte técnico especializado.

DESCUBRIR MÁS
Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid