Categories
es

Cómo programar tareas en linux una introducción a los archivos crontab

Aprenda el proceso paso a paso y la técnica de programar tareas en Linux utilizando las utilidades cron, crontab y at. También aprenderá a ver y finalizar las tareas programadas.

ENTENDIENDO EL TEMA

Así como existe el programador de tareas en el sistema operativo Windows, también existe el “crond” y el demonio “atd” en Linux que ejecuta tareas programadas en segundo plano.

Programar tareas es muy importante para los usuarios del sistema, y lo que es más importante, para los administradores del sistema, especialmente para poder realizar automáticamente algunas actividades repetidas y regulares como copias de seguridad, mantenimiento, etc.

En Linux, los dos servicios básicos que se encargan de programar tareas son los servicios “crond” y “atd”.

Qué es cron

cron es el programa que se utiliza para programar un trabajo en Linux, tal y como hemos mencionado anteriormente, el demonio responsable de cron es el “crond”, y se inicia por defecto en cuanto se enciende el sistema.

Para que un administrador pueda configurar y ejecutar una tarea programada, el demonio cron (crond) debe estar activo y en ejecución.

Para verificar el estado del demonio crond, utilice el comando

cron es muy flexible, y lo mejor para tareas que deben realizarse repetidamente o de forma regular (trabajos recurrentes).

El archivo de configuración de cron puede encontrarse en muchas rutas, una de las cuales es “/etc/crontab”.

Otros archivos de configuración de cron se encuentran en “/etc/cron. d”, “/etc/cron. daily”, “/etc/cron. deny” , “/etc/cron. hourly”, “/etc/cron. monthly”, “/etc/crontab”, “/etc/weekly”

Como los nombres de estos directorios implican, ejecutan shell scripts/trabajos diarios, semanales, horarios y mensuales por paquetes rpm, y estos paquetes sólo saben usar estos archivos para ejecutar sus trabajos.

Para programar una tarea utilizando cron como usuario o administrador, se recomienda definir los archivos crontab en el directorio “/etc/cron. d” o utilizar el comando “cronta b-e” para lanzar el editor crontab.

La razón es que el archivo “/etc/crontab” siempre es modificado automáticamente por el sistema o los paquetes cuando se realiza una actualización y las tareas cron que defina aquí pueden sobrescribirse. Por lo tanto, no es recomendable que un usuario o administrador modifique este archivo para programar una tarea.

Utilizar el directorio “/etc/cron. d” y el comando “cronta b-e” para programar una tarea no es difícil. Los archivos de “/etc/cron. d” seguirán el mismo formato que los de /etc/crontab.

Del mismo modo, los archivos que se crearán utilizando cronta b-e seguirán el mismo formato en /etc/crontab excepto que no se añadirá el nombre de usuario en el archivo, lo que veremos cómo hacer mediante ejemplos a medida que avancemos.

Un ejemplo de un archivo en el directorio “/etc/cron. d” es el archivo 0hourly como se ve a continuación

Un administrador también puede programar un trabajo creando archivos en otras ubicaciones de archivos de configuración cron como /etc/cron. daily, /etc/cron. monthly, /etc/cron. weekly, etc. Sin embargo, esto no sigue el mismo formato que el uso de /etc/cron. d o el comando cronta b-e.

El formato en esta ubicación requiere que el usuario cree un script. Un ejemplo de una tarea cron en esta ubicación es el archivo /etc/cron. daily/logrotate.

La ventaja de utilizar /etc/cron. daily, /etc/cron. weekly y /etc/cron. hourly para programar un trabajo se debe a que el sistema utiliza una especie de técnica matemática llamada anacron (/etc/anacrontab) para realizar copias de seguridad de los archivos de estos directorios.

Por lo tanto, si un trabajo no se ejecutó debido a la falta de disponibilidad del sistema de cualquier forma, el trabajo se ejecutará cuando el sistema esté disponible porque el sistema mira el archivo anacron y utiliza la configuración en el archivo para hacer que los trabajos se ejecuten.

Qué es Crontab en Linux

crontab es el acrónimo de “tabla cron”. Son los scripts o comandos que ejecutarán el trabajo cron con el uso del demonio cron. El comando crontab con la opción “-e” lanzará el editor crontab donde puedes definir tus scripts para un trabajo cron

Para utilizar el comando “cronta b-e” para ejecutar un trabajo cron, es aconsejable cambiar el usuario al usuario que desea ejecutar el trabajo o iniciar sesión como el usuario para dar cabida a los permisos adecuados.

Por ejemplo, si desea ejecutar una tarea cron con el usuario Víctor, cambie el usuario o inicie sesión como Víctor antes de utilizar el comando “cronta b-e” para iniciar el editor crontab. Si no existe un crontab para el usuario, se creará uno nuevo.

Cómo programar una tarea en Linux con cron

En el archivo “/etc/crontab”, verá los ejemplos de definición de tareas cron

Usted puede ver los ejemplos de la definición del trabajo, estos ejemplos pueden ser comparados con como

¿Qué significa esto?

De izquierda a derecha,

El primer * representa minutos (de 0-59 minutos)

El segundo * representa horas (de 0-23 horas)

El tercer * representa los días del mes (de 1 a 31 días)

El cuarto * representa los meses (de 1 a 12 meses) o también puede ser ene, feb, mar, etc (es decir, las tres primeras letras del mes)

El quinto * representa los días de la semana (de 0 a 6 días). Domingo es 0 o 7. También puede ser sun, mon, tue, etc (es decir, las tres primeras letras de la semana).

El comodín * significa “cada”, por lo que, por ejemplo, el script anterior significa simplemente

(ejecutar “cada minuto, cada hora, cada día del mes, cada mes, cada día de la semana”. El resumen del script es “ejecutar cada minuto”)

Vamos a registrar alguna información en el registro del sistema, archivo “/var/log/messages” en nuestro sistema mediante el trabajo cron anterior

1. inicie el editor crontab ejecutando el comando

2. verifique el archivo /var/log/messages para ver si el trabajo se ejecuta

Ahora puede ver que la tarea se ejecuta cada minuto.

Veamos otro ejemplo.

Si vamos a programar un trabajo para que se ejecute todos los jueves a las 2am, el script se escribirá como,

Esto significa simplemente, ejecutar el trabajo cada 0 minutos, de 2 horas (2AM), de cada día del mes, de cada mes los Jueves.

Tomemos otro ejemplo,

Si vamos a programar un trabajo para que se ejecute de lunes a viernes cada 3 AM, el script se escribirá como

Esto simplemente significa, ejecutar este trabajo cada o minutos de 2 horas (3AM), de cada día del mes, de cada mes de lunes a viernes.

El uso de cron es muy flexible y también puede ser utilizado por algunas ciertas palabras como

Cuando se utilizan estas palabras, las otras columnas deben dejarse vacías.

Por ejemplo, para ejecutar un script diariamente, utilice los scripts

Pregunta práctica del examen RHCSA 8 sobre programación de tareas en Linux

Tus comentarios son bienvenidos. Si amas a los demás, vas a compartir con los demás

Actualizado el 30 de abril

Crontab es también el nombre del programa que se utiliza para editar esa programación. Es manejado por un archivo crontab, un archivo de configuración que indica comandos de shell para ejecutar periódicamente para el horario específico.

En este tutorial de Sistema Operativo, aprenderás:

¿Por qué usar Cronjobs?

Aquí están las razones para el uso de Cronjobs en Linux:

Ayuda al sistema operativo a tomar una copia de seguridad programada de los archivos de registro o base de datos.

Borrar archivos de registro antiguos

  • Archivar y purgar tablas de bases de datos
  • Enviar cualquier notificación por correo electrónico, tales como boletines de noticias, correo electrónico de caducidad de contraseña
  • Limpieza regular de datos en caché
  • Crontab es una opción ideal para automatizar trabajos Unix.
  • Se utiliza para automatizar el mantenimiento del sistema
  • ¿Cómo utilizar cron en Linux?
  • El paquete de sistema Linux tiene un útil programador de tareas llamado crontab. Crontab es popular porque se puede programar para ejecutar un proceso automatizado como root. Por lo tanto, tener un proceso automatizado ejecutándose como root facilita los cambios en el sistema. Basta con cambiar la tarea y esperar a que se reinicie.

Formato de Crontab de Linux

Crontab de Linux tiene seis campos. Los cinco primeros campos definen la hora y la fecha de ejecución, y el sexto campo se utiliza para la ejecución de comandos.

Astrics (*): Usar para coincidencias

Definir rango: Le permite definir un rango con la ayuda de un guión como 1-10 o 30-40 o ene-mar, mon-wed.

  • Definir varios rangos: Le permite definir varios rangos con comandos separados como abr-jun, oct-dec.
  • Cómo añadir/modificar Crontab
  • El usuario puede editar sus trabajos crontab con la ayuda del siguiente comando crontab:

El comando anterior abrirá la configuración crontab personal de su sistema informático, que puede editarse utilizando su editor de texto predeterminado.

No hay necesidad de reiniciar su crontab ya que recogerá sus cambios automáticamente cuando utilice el siguiente comando.

Para eliminar las tareas de crontab, utilice el siguiente comando.

Para agregar o actualizar una tarea en crontab, utilice el siguiente comando.

Comando para editar el crontab de otro usuario

Cómo listar crontab

Comando para ver las entradas de crontab del usuario actual

Comando para ver las entradas de crontab de un usuario específico:

Ejemplos importantes de Crontab

Estos son algunos ejemplos importantes de Crontab

El archivo crontab de Linux (/etc/crontab) se define en un formato específico. Cada línea puede estar en blanco, ser un comentario (que comienza con #), una variable o un comando. Las líneas en blanco del archivo crontab(/etc/crontab) de Linux y los comentarios se ignoran.

Cron está controlado por un conjunto de archivos llamados “crontabs”. El archivo maestro (para todo el sistema) es /etc/crontab. Los archivos crontab para los usuarios se encuentran en /var/spool/cron/. En /var/spool/cron, los archivos reciben el mismo nombre que el ID de inicio de sesión del usuario.

El archivo crontab, /etc/crontab, ejecuta automáticamente elementos en varios subdirectorios (como se especifica en el archivo crontab, que se muestra a continuación) en períodos regulares.

A continuación se muestra un archivo crontab maestro típico (/etc/crontab).

]# 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

Las cuatro primeras líneas son variables utilizadas para configurar el entorno en el que se ejecutan las tareas cron. El valor de la variable SHELL indica al sistema qué entorno de shell debe utilizar (en este ejemplo, el shell bash), y la variable PATH define la ruta utilizada para ejecutar los comandos. La salida de las tareas cron se envía por correo electrónico al nombre de usuario definido con la variable MAILTO. Si la variable MAILTO se define como una cadena vacía (MAILTO=””), no se enviará el correo electrónico. La variable HOME puede utilizarse para establecer el directorio de inicio que se utilizará al ejecutar comandos o scripts.

Actualizado el 30 de abril de 2022

¿Qué es crontab?

Actualizado el 30 de abril

Crontab es también el nombre del programa que se utiliza para editar esa programación. Es manejado por un archivo crontab, un archivo de configuración que indica comandos de shell para ejecutar periódicamente para el horario específico.

En este tutorial de Sistema Operativo, aprenderás:

¿Por qué usar Cronjobs?

Aquí están las razones para el uso de Cronjobs en Linux:

Ayuda al sistema operativo a tomar una copia de seguridad programada de los archivos de registro o base de datos.

Borrar archivos de registro antiguos

  • Archivar y purgar tablas de bases de datos
  • Enviar cualquier notificación por correo electrónico, tales como boletines de noticias, correo electrónico de caducidad de contraseña
  • Limpieza regular de datos en caché
  • Crontab es una opción ideal para automatizar trabajos Unix.
  • Se utiliza para automatizar el mantenimiento del sistema
  • ¿Cómo utilizar cron en Linux?
  • El paquete de sistema Linux tiene un útil programador de tareas llamado crontab. Crontab es popular porque se puede programar para ejecutar un proceso automatizado como root. Por lo tanto, tener un proceso automatizado ejecutándose como root facilita los cambios en el sistema. Basta con cambiar la tarea y esperar a que se reinicie.

Formato de Crontab de Linux

Crontab de Linux tiene seis campos. Los cinco primeros campos definen la hora y la fecha de ejecución, y el sexto campo se utiliza para la ejecución de comandos.

Astrics (*): Usar para coincidencias

Definir rango: Le permite definir un rango con la ayuda de un guión como 1-10 o 30-40 o ene-mar, mon-wed.

  • Definir varios rangos: Le permite definir varios rangos con comandos separados como abr-jun, oct-dec.
  • Cómo añadir/modificar Crontab
  • El usuario puede editar sus trabajos crontab con la ayuda del siguiente comando crontab:

El comando anterior abrirá la configuración crontab personal de su sistema informático, que puede editarse utilizando su editor de texto predeterminado.

No hay necesidad de reiniciar su crontab ya que recogerá sus cambios automáticamente cuando utilice el siguiente comando.

Para eliminar las tareas de crontab, utilice el siguiente comando.

Para agregar o actualizar una tarea en crontab, utilice el siguiente comando.

Comando para editar el crontab de otro usuario

Cómo listar crontab

Comando para ver las entradas de crontab del usuario actual

Comando para ver las entradas de crontab de un usuario específico:

Ejemplos importantes de Crontab

Estos son algunos ejemplos importantes de Crontab

El archivo crontab de Linux (/etc/crontab) se define en un formato específico. Cada línea puede estar en blanco, ser un comentario (que comienza con #), una variable o un comando. Las líneas en blanco del archivo crontab(/etc/crontab) de Linux y los comentarios se ignoran.

Cron está controlado por un conjunto de archivos llamados “crontabs”. El archivo maestro (para todo el sistema) es /etc/crontab. Los archivos crontab para los usuarios se encuentran en /var/spool/cron/. En /var/spool/cron, los archivos reciben el mismo nombre que el ID de inicio de sesión del usuario.

Por defecto, una versión de cron (hay más de una implementación) ya estará instalada en el sistema Linux, por lo que no hay que preocuparse de instalar la herramienta. Y en cuanto a su uso, hay dos comandos asociados a cron:

cron: El demonio que se utiliza para ejecutar comandos programados.

crontab: El comando que se utiliza para invocar el editor para gestionar los trabajos cron de un usuario.

  • El archivo crontab de un usuario es el archivo que contiene los trabajos leídos por cron. Cada usuario de un sistema puede tener un archivo crontab (esto incluye al usuario root) donde se pueden controlar los trabajos y tareas. El propio sistema también tiene un archivo crontab ubicado en /etc/crontab , pero no debe ser editado por el usuario. Este archivo se genera al instalar el sistema operativo. Si se examina el archivo /etc/crontab se revela que en realidad controla los trabajos cron que se encuentran dentro de /etc/cron. daily , /etc/cron. weekly y /etc/cron. monthly . Pero ese archivo no va a ser el foco aquí. En su lugar, nos centraremos en el archivo crontab del usuario, ya que es el archivo que se utiliza para programar las tareas ordinarias del usuario.
  • El aspecto de cron que desconcierta a la mayoría de los usuarios es la forma en que se utiliza el tiempo. Para cada entrada de crontab se declara una hora específica en la que se ejecutará la entrada. La entrada de tiempo tiene la forma

Cada entrada de hora consta de cinco secciones:

Minuto (0-59)

Hora (0-23 Siendo 0 las 12:00 AM)

  • Día del mes (1-31)
  • Mes (1-12)
  • Día de la semana (0-6, siendo 0 el domingo)
  • Una entrada típica sería la siguiente
  • M inuto Hora Día Mes Día de la semana

Algunos ejemplos de hora:

0 23 * * * Diario a las 23:00

30 22 * * * Todos los días a las 22:30

0 23 1 * * Todos los primeros días de mes a las 23.00 horas

0 23 * * 0 Todos los domingos a las 11 PM

Utilización de la utilidad crontab

Ahora que se entiende la hora, es hora de empezar a añadir entradas. Para ver el archivo crontab de un usuario se invoca el comando crontab. Hay tres opciones principales para usar con el comando crontab:

e: Editar el archivo crontab.

l: Listar el contenido del archivo crontab.

  • r: Eliminar el contenido del archivo crontab.
  • Cuando se invoca el comando cronta b-l se mostrarán las entradas del archivo crontab de los usuarios (si existen). Para añadir una entrada al archivo crontab de un usuario, se invoca el comando cronta b-e para que el archivo crontab se abra en el editor predeterminado (como ed, vim. tiny o nano). Cuando se ejecuta el comando cronta b-e por primera vez, se establece el editor predeterminado. Para seleccionar el editor predeterminado para crontab, seleccione el número que corresponde al editor deseado.
  • La figura 1 muestra un crontab

El script anterior se guardará en el directorio personal del usuario como. my_backup. sh y se le dará permiso de ejecución con el comando chmod u+x

/.mi_backup. sh . Ahora, con crontab en modo edición, crea una entrada que ejecute el script cada noche a las 11 PM, añade la siguiente línea:

Una vez creada esta entrada, guarde y cierre el editor (la forma de hacerlo dependerá del editor predeterminado que haya elegido). Una vez hecho esto, siempre que no haya errores, crontab informará “crontab: installing new crontab” para indicar que la entrada se ha realizado correctamente. Si hay errores, vuelva a abrir el archivo crontab para hacer los cambios necesarios.

Edición del crontab de un usuario diferente

#! /bin/bash echo Backup Started `date` >>

/backuplog mkdir /media/EXT_DRIVE/backups/`date +%Y%m%d` tar – czf /media/EXT_DRIVE/backups/`date +%Y%m%d`/data. tar. gz /data echo Backup Completed `date` >>

Digamos que se debe editar el crontab de un usuario diferente. No es necesario acceder a ese usuario diferente, ya que crontab tiene una opción incorporada para ese propósito específico. Si se ejecuta crontab utilizando la opció n-u como cronta b-e – u USERNAME , se abrirá el archivo crontab del usuario especificado (donde USERNAME es el usuario en cuestión) para su edición. Este comando, sin embargo, sólo puede ser emitido por un usuario con usuario administrativo (o el comando puede ser emitido usando sudo .) Por supuesto, la edición de archivos crontab de otros usuarios debe limitarse sólo a los administradores.

Reflexiones finales

El sistema cron ayuda a hacer de Linux uno de los sistemas operativos más flexibles que existen. Cron no sólo ayuda al sistema a mantener sus registros rotados y limpios, sino que permite a los usuarios programar sus propias tareas, scripts y trabajos. Aunque el aspecto temporal de cron puede ser un poco difícil de entender, una vez que se comprende, el resto cae en su lugar.

Si la idea de editar las entradas de cron desde la línea de comandos te parece un poco exagerada, te alegrará saber que existen herramientas GUI para esta tarea. Eche un vistazo a una herramienta como GNOME Schedule (que se encuentra en la herramienta Agregar o quitar software) para una aplicación que puede gestionar sus tareas cron con la ayuda de una GUI fácil de usar. Pero para aquellos que realmente quieren entender Linux, conocer cron y crontab es esencial.

En el caso de Linux, viene con dos herramientas básicas pero potentes: Cron daemon (programador de tareas por defecto) y at (más adecuado para programar tareas puntuales).

En esta guía, echa un vistazo a cómo programar una tarea en Linux.

Programar tareas en Linux

Cron El demonio cron es responsable de ejecutar una gran cantidad de tareas en momentos específicos. Estas tareas se ejecutan generalmente en segundo plano a horas programadas. Ofrece una gran flexibilidad independientemente de la tarea, independientemente del intervalo (hora, semana, mes, año, o lo que sea).

Cron realiza un seguimiento de sus acciones mediante el archivo crontab. El archivo crontab es un script que contiene toda la información necesaria para ejecutar todas las tareas de cron.

Echemos un vistazo rápido a algunos de los usos básicos de cron. En el caso de cualquiera de los siguientes comandos, se configurará para el usuario root si se ejecuta con privilegios sudo. Para la demostración, he tomado un archivo crontab de ejemplo de aquí.

Para listar todos los trabajos cron programados para el usuario actual, ejecute el siguiente comando. Se imprimirá todo el contenido del crontab

día del mes: del 1 al 31

mes: 1 a 12

día de la semana: 0 (domingo) a 6 (sábado)

Para obtener una guía detallada sobre cómo utilizar crontab para automatizar tareas, consulte cómo configurar cron jobs en Linux. He aquí otro ejemplo rápido de una tarea cron que se ejecuta cada minuto.

at Si bien cron es la forma principal de programar tareas, at ofrece la posibilidad de ejecutar un comando/script a una hora específica o en un intervalo fijo, tenga en cuenta que at ejecutará el trabajo objetivo una vez, mientras que cron volvería a ejecutar el trabajo en el intervalo. La herramienta at es menos popular comparada con cron, pero es relativamente más fácil de usar. Puede utilizar ciertas palabras clave como medianoche u hora del té (4 P. M.).

Esta herramienta no viene preinstalada en la mayoría de las distribuciones Linux. Para instalarla, ejecuta el comando adecuado según tu distro.

Para Debian/Ubuntu y derivados.

Para CentOS/RHEL y derivados.

Hacer que las cosas sucedan en un horario regular y predecible es importante en los ordenadores. Es importante porque, como humanos, a veces podemos ser malos recordando hacer las cosas de forma fiable porque nos distraemos, tenemos demasiadas cosas en la cabeza o estamos de vacaciones. Los ordenadores son muy buenos haciendo cosas según un calendario, pero un humano tiene que programar el ordenador antes de que éste actúe.

  • En cierto modo, el sistema cron es una introducción fácil y rudimentaria a la programación. Puedes hacer que tu ordenador haga lo que quieras con sólo editar un archivo. Ni siquiera tienes que saber dónde se guarda el archivo. Sólo tienes que teclear un simple comando, introducir la “receta” que quieres que siga tu ordenador y guardar tu trabajo. A partir de ese momento, el ordenador ejecutará las instrucciones a la hora especificada hasta que se le indique que se detenga.
  • Por su diseño, cron no es un sistema complejo. Esto es lo que necesitas saber sobre él.
  • Más recursos de Linux
  • Hoja de trucos de comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux

Curso en línea gratuito: Visión general técnica de RHEL

Hoja de trucos sobre redes Linux

Hoja de trucos de SELinux

Hoja de trucos de comandos comunes de Linux

¿Qué son los contenedores Linux?

Nuestros últimos artículos sobre Linux

¿Qué es cron?

El comando cron es tan omnipresente en Linux y Unix, y ha sido imitado y reinventado tan a menudo que es casi un término genérico para algo que ocurre según un programa. Es una forma de automatización, y aunque existen diferentes implementaciones (Dillon’s cron, Vixie’s cron, chrony, y otros), y variaciones como anacron y systemd timers, la sintaxis y el flujo de trabajo han permanecido esencialmente iguales durante décadas.

Cron funciona en un sistema de “spool”, como las impresoras y el correo electrónico. Si no sabías que las impresoras y el correo electrónico utilizan un spool, no pasa nada, porque el objetivo de un archivo spool es que no tengas que pensar mucho en él. En un sistema Linux, el directorio /var/spool está diseñado como un hub central para archivos importantes pero de bajo nivel con los que el usuario no debe interactuar directamente. Uno de los spools gestionados en /var/spool son las tablas cron o “crontab” para abreviar. Todos los usuarios (incluido usted) de un sistema Linux tienen una crontab. Los usuarios pueden editar, ver y eliminar su propia crontab. Además, los usuarios pueden utilizar su crontab para programar tareas. El propio sistema cron supervisa las crontab y se asegura de que cualquier tarea incluida en una crontab se ejecute a la hora especificada.

  • Editar la configuración de cron
  • Puede editar su crontab utilizando el comando crontab junto con la opció n-e (para editar ). Por defecto, la mayoría de los sistemas invocan el editor de texto vim. Si usted, como yo, no usa Vim, entonces puede configurar un editor diferente para usted en su
  • /.bashrc. Yo lo he configurado con Emacs, pero también puedes probar con Nano, Kate o cualquiera que sea tu editor favorito. La variable de entorno EDITOR define qué editor de texto utilizas en tu terminal, mientras que la variable VISUAL define qué editor utilizas en modo gráfico:
  • Actualiza tu sesión de shell con tu nueva configuración:
  • Ahora puede editar su crontab con su editor preferido:
  • Programar una tarea
  • El sistema cron es esencialmente un sistema de calendario. Puede indicarle a cron con qué frecuencia desea que se ejecute una tarea mediante cinco atributos diferentes: minuto, hora, fecha, mes y día de la semana. El orden de estos atributos es estricto y no necesariamente intuitivo, pero puede pensar en ellos como filtros o máscaras. Por defecto, se puede pensar que todo está configurado como siempre o cada . Esta entrada ejecutaría touch /tmp/hello al principio de cada minuto durante cada hora de cada día durante todo el año:
  • Puede restringir esta programación global estableciendo definiciones específicas para cada atributo. Para hacer que el trabajo se ejecute en la marca de media hora de cada hora, establezca los minutos en 30 :

Puede restringir aún más esta instrucción con una hora específica. Este trabajo se ejecuta a las 3:30 AM cada mañana:

También puede hacer que el trabajo se ejecute sólo el primer día de cada mes:

Puede establecer un mes usando 1 para Enero hasta 12 para Diciembre, y puede establecer un día usando 0 para Domingo hasta 6 para Sábado. Este trabajo se ejecuta a las 3:15 durante el mes de abril, sólo los lunes:

Establecer incrementos

Todos estos ajustes coinciden exactamente con un valor . También puede utilizar la notación cron para ejecutar trabajos tras un periodo de tiempo determinado. Por ejemplo, puede ejecutar un trabajo cada 15 minutos:

Podría ejecutar un trabajo a las 10 AM cada tres días:

Puedes ejecutar un trabajo cada seis horas:

Abreviatura de cron

Las implementaciones modernas de cron han añadido una práctica abreviatura para las programaciones más comunes. Éstas son

@horario

@diario

@semanal

@mensual

@anual o @anualmente

Lista de cron jobs

Con el comando crontab, puede ver una lista de los trabajos cron programados:

Eliminar un crontab

Cuando haya terminado con un crontab, puede eliminarlo con la opció n-r:

La opció n-i significa interactivo. Le pedirá confirmación antes de eliminar el archivo.

Qué puede hacer cron

  • Una cosa es saber cómo usar
  • cron
  • pero otra cosa es saber para qué utilizarlo. El caso de uso clásico es un buen plan de copias de seguridad. Si tu ordenador está encendido la mayor parte del día o todo el día y toda la noche, puedes programar una copia de seguridad rutinaria de una partición importante. Yo ejecuto una aplicación de copia de seguridad llamada rdiff-backup en mi partición de datos principal todos los días a las 3 de la madrugada:
  • Otro uso común es el mantenimiento del sistema. En mi escritorio Slackware, actualizo el catálogo de repositorios locales todos los viernes por la tarde:
  • También podría ejecutar un script de Ansible a las 15:00 cada tres días para ordenar mi carpeta de Descargas:

Un poco de inversión en la salud de tu entorno informático hace mucho. Existen secuencias de comandos de desduplicación, monitores de tamaño de archivos y directorios /tmp, redimensionadores de fotos, desplazadores de archivos y muchas otras tareas menores que puedes programar para que se ejecuten en segundo plano y te ayuden a mantener tu sistema despejado. Con cron, tu ordenador puede cuidar de sí mismo como me gustaría que lo hiciera mi apartamento.

Recuerda la configuración de cron

Además de pensar por qué necesitas cron , lo más difícil de cron en mi experiencia ha sido recordar su sintaxis. Repítete esto una y otra vez hasta que lo hayas memorizado:

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Mejor aún, ¡descarga nuestra hoja de trucos gratuita para tener la clave a mano cuando más la necesites!En este artículo, vamos a revisar y ver cómo podemos programar y ejecutar tareas en segundo plano automáticamente a intervalos regulares utilizando el comando Crontab.Tratar con un trabajo frecuente manualmente es una tarea desalentadora para los administradores del sistema y tales tareas pueden ser programadas y ejecutadas automáticamente en segundo plano sin intervención humana utilizando el demonio cron en Linux o sistema operativo tipo Unix.

Por ejemplo, puede automatizar la copia de seguridad del sistema Linux, programar actualizaciones y sincronización de archivos, y muchos más utilizando el demonio Cron, que se utiliza para ejecutar tareas programadas desde la línea de comandos o utilizar herramientas en línea para generar trabajos cron.

Cron se despierta cada minuto y comprueba las tareas programadas en contable – Crontab ( CRON TABLE ) es una tabla donde podemos programar este tipo de tareas repetidas.

Consejos: Cada usuario puede tener su propio crontab para crear, modificar y borrar tareas. Por defecto cron está habilitado para los usuarios, sin embargo, podemos restringir a los usuarios añadiendo una entrada en el archivo /etc/cron. deny.

El archivo crontab consta de un comando por línea y tiene seis campos separados por espacios o tabuladores. Los primeros cinco campos representan el tiempo para ejecutar tareas y el último campo es para el comando.

Minuto (valores entre 0-59 )

Hora (valores entre 0-23 )

Hora (valores entre 0-23 )

Hora (valores entre 0-23 )

El día de la semana (valores entre 0-6 o Sun-Sat , aquí también puede utilizar las tres primeras letras del nombre de cada día, por ejemplo Sun o Wed . )

Comando – El /ruta/al/comando o script que desea programar.

1. Lista de entradas Crontab

Lista o gestiona la tarea con el comando crontab con la opció n-l para el usuario actual.

2. Editar entradas de crontab

Para editar la entrada crontab, utilice la opció n-e como se muestra a continuación. En el siguiente ejemplo se abrirán las tareas programadas en el editor VI. Realice los cambios necesarios y salga pulsando las teclas :wq que guardan la configuración automáticamente.

3. Listar Trabajos Cron Programados

  • Para listar los trabajos programados de un usuario en particular llamado tecmint usando la opció n-u ( User ) y-l ( List ).
  • Nota: Solo el usuario root tiene privilegios completos para ver las entradas crontab de otros usuarios. Los usuarios normales no pueden ver las demás.
  • 4. Eliminar entrada de crontab
  • Precaución: Crontab con el parámetr o-r eliminará todos los trabajos programados sin confirmación de crontab. Utilice la opció n-i antes de eliminar el crontab del usuario.
  • 5. Preguntar antes de eliminar crontab
  • crontab co n-i la opción le pedirá confirmación del usuario antes de eliminar el crontab del usuario.

6. Caracteres especiales permitidos (*, -, /, ?, #)

Asterisco(*) – Coincide con todos los valores del campo o con cualquier valor posible.

Guión(-) – Para definir un rango.

Barra oblicua (/) – 1er campo /10 que significa cada diez minutos o incremento de rango.

La coma (,) – Para separar elementos.

7. Cron Schedule para todo el sistema

El administrador del sistema puede utilizar el directorio cron predefinido como se muestra a continuación.

/etc/cron. d

/etc/cron. d

Una vez al año. Podemos utilizar la palabra clave @anualmente también.

Hay que sustituir cinco campos del comando cron por palabras clave si se quiere utilizar el mismo.

10. Comandos múltiples con doble ampersand(&&)

  • En el siguiente ejemplo, el comando1 y el comando2 se ejecutan diariamente.
  • 11. Desactivar Notificación por Email.
  • La opción &1 al final del archivo redirigirá toda la salida de los resultados de cron bajo /dev/null .
  • conclusión: La automatización de tareas puede ayudarnos a realizar nuestras tareas de mejor manera, sin errores y eficientemente. Puede consultar la página del manual de crontab para obtener más información escribiendo el comando ‘ man crontab ‘ en su terminal.

Si aprecias lo que hacemos aquí en TecMint, deberías considerar:

TecMint es el sitio de la comunidad de más rápido crecimiento y de mayor confianza para cualquier tipo de Linux Artículos, Guías y Libros en la web. Millones de personas visitan TecMint! para buscar o navegar por los miles de artículos publicados disponibles GRATUITAMENTE para todos.

  • Si le gusta lo que está leyendo, por favor considere comprarnos un café ( o 2 ) como muestra de agradecimiento.
  • Estamos muy agradecidos por su constante apoyo.
  • Guía paso a paso para configurar un Cron Job
  • ¿Alguna vez te has encontrado haciendo tareas repetitivas de forma regular? Por ejemplo, eliminar archivos temporales cada semana para conservar espacio en disco, extraer datos de un sitio web cada semana para recopilar nueva información o enviar correos electrónicos recurrentes al mismo grupo de personas para campañas de “recordatorio”, etcétera. Si es así, es posible que desee configurar un programador de tareas cron, que realizará automáticamente las tareas por usted en cualquier momento programado.
  • Cron viene de “chron”, el prefijo griego para “tiempo”. Es un demonio para ejecutar comandos programados en sistemas Linux o similares a Unix, que te permite programar cualquier tarea a intervalos especificados.

Contras VS. Crontab VS. Cronjob

Cron: Cron es un demonio que se ejecuta en los momentos de arranque del sistema.

Crontab: Crontab (tabla cron) es un archivo que contiene la programación de las entradas cron que se ejecutarán y a horas específicas. La ubicación del archivo varía según el sistema operativo.

Cron job o cron schedule: Cron job o cron schedule es un conjunto específico de instrucciones de ejecución que especifica el día, la hora y el comando a ejecutar. crontab puede tener múltiples instrucciones de ejecución. Antes de lanzarnos a configurar un trabajo cron, necesitamos saber cómo especificar con qué frecuencia y cuándo se ejecutará el trabajo cron.
Consta de cinco partes: minuto, hora, día del mes, mes y día de la semana. Por ejemplo, el código dado ejecutará un trabajo el 10 de junio a las 08:30 AM. Observa que * significa todas las unidades posibles. Para más información, puedes consultar más ejemplos de Geeksforgeeks.
cron Comandos de entrada de texto
pero otra cosa es saber para qué utilizarlo. El caso de uso clásico es un buen plan de copias de seguridad. Si tu ordenador está encendido la mayor parte del día o todo el día y toda la noche, puedes programar una copia de seguridad rutinaria de una partición importante. Yo ejecuto una aplicación de copia de seguridad llamada rdiff-backup en mi partición de datos principal todos los días a las 3 de la madrugada: A Añadir texto al final de la línea actual
i Insertar texto Para iniciar un nuevo archivo crontab, deberá escribir cronta b-e en su terminal ( Nota : no es necesario escribir este comando en el mismo directorio que el archivo que desea ejecutar). Después de eso, se abrirá un editor VIM vacío. A continuación, podemos escribir la sintaxis de tiempo y la ubicación del archivo que desea ejecutar.

Añade esta línea dentro del editor vim * * * * /PATH AL ARCHIVO/script. py

Si esto te funciona, ¡ya está! Acabas de crear una tarea cron.

Si no, no te preocupes, sigue leyendo. ❤

Solución 1: Añadir una ubicación para el ejecutable de Python

By default, cron sends mail to the user account executing cronjob. If you want to disable it add your cron job similar to the below example. Using >/dev/null 2>Si recibes este mensaje de error como este ” /bin/sh: /Usuarios/XXX/Documentos/Python/shellScript. sh: Permiso denegado “, puede intentar añadir una ruta ejecutable de python.

Esta línea de comandos devuelve la ruta del ejecutable python. Al agregar el ejecutable de python, cron ahora puede ejecutar el script de python.

* * * * * /PATH AL EJECUTABLE DE Python/ /PATH AL ARCHIVO/script. py

Solución 2: Cambiar Seguridad y Privacidad en Mac

Si recibe este mensaje de error como este ” [Errno 1] Operación no permitida “, simplemente arrastre la carpeta /usr/sbin/cron a Acceso total al disco en Preferencias del sistema puede ayudarle a resolver el problema.

/tmp/test. txt después del nombre del archivo, guardará la salida del cronjob en el archivo test. txt.

/tmp/prueba. txt

Ya está. Es bastante fácil y sencillo configurar un cronjob, y nos hará la vida mucho más fácil. Si tienes alguna sugerencia, no dudes en compartirla en la sección de comentarios.

Si encuentras esto útil, por favor sígueme y echa un vistazo a mis otros blogs. ❤️

Cron es una herramienta muy útil que te permite programar tareas en varias distribuciones de Linux. Las tareas se conocen más comúnmente como cron jobs y se pueden utilizar para automatizar una amplia variedad de procesos del sistema. Entre otras cosas, las tareas cron se pueden utilizar para programar análisis periódicos del sistema, buscar actualizaciones, enviar correos electrónicos, crear copias de seguridad y mucho más.

Programar tareas de esta manera puede parecer un poco desalentador al principio, pero no te preocupes porque no es tan difícil como puede parecer. En este artículo, vamos a tratar de describir el proceso paso a paso de una manera intuitiva para que pueda aprender a utilizar el crontab, incluso si usted es un nuevo usuario de Linux.

Todo lo que necesitas saber sobre los archivos crontab

La tabla cron, más conocida como crontab, es básicamente un archivo de texto que contiene información relacionada con la programación de tareas cron. Esta utilidad se puede utilizar tanto para crear como para editar tareas existentes. Hay dos tipos principales de archivos crontab que debe conocer: los específicos del usuario y los de todo el sistema.

Como su nombre indica, los archivos crontab específicos de usuario se crean por separado para cada usuario. Estos archivos pueden almacenarse en uno de estos dos lugares, dependiendo de la distribución de Linux que esté ejecutando. En los sistemas basados en Debian, encontrará los archivos en el directorio /var/spool/cron . Mientras tanto, en los sistemas basados en RedHat, los crontabs se encuentran dentro de un directorio ligeramente diferente conocido como /var/spool/cron/crontabs .

En lo que respecta a los archivos crontab de todo el sistema, el directorio

La sintaxis de crontab se compone de seis campos diferentes separados por un espacio. Los primeros cinco campos contienen valores que definen la hora y la fecha del trabajo cron que desea programar. Mientras tanto, el sexto campo simplemente contiene los comandos o scripts que deben ejecutarse. Para darle una indicación visual, la sintaxis será algo parecido a esto:

El operador asterisco (*) significa ‘siempre’ o ‘cada’ en el contexto de esta sintaxis. Por ejemplo, si coloca un asterisco en el campo Día de la semana, la tarea cron programada se ejecutará ese día en particular de cada semana.

El operador guión (-) puede utilizarse para especificar un determinado rango de valores. Por ejemplo, si tiene el rango 1-10 en el campo Día del mes, el trabajo cron sólo se ejecutará durante los 10 primeros días de cada mes.

El operador coma (,) resulta útil cuando desea programar una lista de tareas que deben repetirse en determinados intervalos. Por ejemplo, si escribe 2,4,6 en el campo Día de la semana, el trabajo cron sólo se ejecutará los martes, jueves y sábados. El operador coma se puede utilizar junto con el operador guión para definir varios intervalos, como 10-15, 25-30. Si tiene esos intervalos en el campo Día de la semana, el cron job sólo se ejecutará los martes, jueves y sábados. Si tiene esos intervalos en el campo Día del mes, la tarea sólo se ejecutará entre los días 10 y 15 y, a continuación, entre los días 25 y 30 de cada mes.

El operador barra (/) es similar a la coma en el sentido de que también puede utilizarse para programar tareas cron que deben ejecutarse a determinados intervalos. Sin embargo, funciona de forma un poco diferente. Por ejemplo, si escribe */ 3 en el campo Día del mes, la tarea se ejecutará cada tres días, empezando por el primer día del mes. En esencia, equivale a escribir 0,3,6,9,12, etc. El asterisco que precede a la barra puede sustituirse por un intervalo de valores, como 2-20. Por ejemplo, si pone 2-20/3 en el campo Día del mes, la tarea se ejecutará cada tres días empezando por el segundo día del mes y dejará de ejecutarse después del día 20.

Archivos Crontab para todo el sistema

La sintaxis de la que hemos hablado hasta ahora sólo funciona con archivos crontab específicos de usuario. Si trabaja con archivos de todo el sistema, deberá utilizar una sintaxis ligeramente diferente que incluye un campo adicional. Este séptimo campo se utiliza para especificar bajo qué usuario o usuarios debe ejecutarse la tarea y debe añadirse antes del campo de comando. En otras palabras, la sintaxis para los archivos crontab de todo el sistema debería parecerse un poco a esto:

Cómo utilizar macros predefinidas

Saber cómo utilizar los operadores Cron puede resultar muy útil, pero puede facilitarle aún más las cosas trabajando también con macros. Las macros son atajos que pueden utilizarse en lugar de los cinco campos mencionados para programar rápidamente tareas cron que no requieren valores muy específicos. Éstas son las macros crontab más utilizadas que debe conocer:

@reboot – Se puede utilizar para programar tareas cron para que se ejecuten cada vez que arranque el sistema.

@hourly – Se puede utilizar para programar trabajos cron para que se ejecuten una vez cada hora. El resultado final será el mismo que escribir 0 * * * * en los cinco campos de sintaxis.

@diario – Se puede utilizar para programar trabajos cron para que se ejecuten una vez al día a partir de medianoche. El resultado final será el mismo que escribir 0 * * * * en los cinco campos de sintaxis.

@weekly – Se puede utilizar para programar trabajos cron para que se ejecuten una vez a la semana a partir del domingo a medianoche. El resultado final será el mismo que escribir 0 0 * * 0 en los cinco campos de sintaxis.

@mensual – Se puede utilizar para programar trabajos cron para que se ejecuten una vez al mes comenzando el primer día del mes a medianoche. El resultado final será el mismo que escribir 0 0 1 * * en los cinco campos de sintaxis.

@anual: se puede utilizar para programar trabajos cron para que se ejecuten una vez al año a partir de la medianoche del 1 de enero. El resultado final será el mismo que escribir 0 0 1 1 * en los cinco campos de sintaxis.

Cómo utilizar el comando Crontab

Los archivos crontab pueden editarse manualmente, pero por lo general es mejor utilizar el comando crontab, sobre todo si no es un usuario muy experimentado y todavía está tratando de entender las cosas. El uso del comando crontab le permite no sólo editar archivos, sino también añadir y eliminar tareas cron o simplemente ver las tareas programadas de forma simplificada. Dispone de varias opciones para trabajar con el comando crontab. Éstas son las principales que deberá tener en cuenta:

crontab – e: Esta opción le permite crear un nuevo archivo crontab o editar uno ya existente.

crontab – l: Esta opción le permite mostrar el contenido del archivo crontab actual con el que está trabajando.

crontab – r: Esta opción le permite eliminar el archivo crontab actual.

crontab – i: Esta opción es idéntica a la anterior pero además te muestra un prompt antes de eliminar el archivo crontab actual.

crontab – u : Esta opción permite editar el archivo crontab del usuario especificado. Necesitará tener privilegios de administrador del sistema para poder utilizar esta opción.

Algunas cosas a tener en cuenta sobre las variables crontab

La utilidad crontab asigna automáticamente ciertas variables para su entorno de trabajo que quizás desee conocer. Estas variables pueden modificarse, pero si aún no está familiarizado con el uso de cron jobs, probablemente debería ceñirse a los valores predeterminados. Al menos hasta que se haya acostumbrado a la utilidad. Las variables que debe tener en cuenta son:

Hacer que las cosas sucedan en un horario regular y predecible es importante en las computadoras. Es importante porque, como humanos, a veces podemos ser malos recordando hacer las cosas de forma fiable porque nos distraemos, tenemos demasiadas cosas en la cabeza, o estamos de vacaciones. Los ordenadores son muy buenos haciendo cosas según un calendario, pero un humano tiene que programar el ordenador antes de que éste actúe.

En cierto modo, el sistema cron es una introducción fácil y rudimentaria a la programación. Puedes hacer que tu ordenador haga lo que quieras con sólo editar un archivo. Ni siquiera tienes que saber dónde se guarda el archivo. Sólo tienes que teclear un simple comando, introducir la “receta” que quieres que siga tu ordenador y guardar tu trabajo. A partir de ese momento, el ordenador ejecutará las instrucciones a la hora especificada hasta que se le indique que se detenga.

You might want to check whether the cron job is running fine. To do so, you can create a log file that collects the cron execution log. By adding this >>Por su diseño, cron no es un sistema complejo. Esto es lo que necesitas saber sobre él.

* * * * * /PATH TO FILE/script. py >>Más recursos de Linux

Hoja de trucos de comandos de Linux

Hoja de trucos de comandos avanzados de Linux

Curso en línea gratuito: Visión general técnica de RHEL

Hoja de trucos sobre redes Linux

Hoja de trucos de SELinux

Hoja de trucos de comandos comunes de Linux

Qué contiene Linux

Cron funciona con un sistema de “spool”, como las impresoras y el correo electrónico. Si no sabías que las impresoras y el correo electrónico utilizan un spool, no pasa nada, porque el objetivo de un archivo spool es que no tengas que pensar mucho en él. En un sistema Linux, el directorio /var/spool está diseñado como un hub central para archivos importantes pero de bajo nivel con los que el usuario no debe interactuar directamente. Uno de los spools gestionados en /var/spool son las tablas cron o “crontab” para abreviar. Todos los usuarios (incluido usted) de un sistema Linux tienen una crontab. Los usuarios pueden editar, ver y eliminar su propia crontab. Además, los usuarios pueden utilizar su crontab para programar tareas. El propio sistema cron supervisa las crontab y se asegura de que cualquier tarea incluida en una crontab se ejecute a la hora especificada.

Editar la configuración de cron

Puede editar su crontab utilizando el comando crontab junto con la opció n-e (para editar ). Por defecto, la mayoría de los sistemas invocan el editor de texto vim. Si usted, como yo, no utiliza Vim, puede configurar un editor diferente en su crontab.

Mejor aún, ¡descarga nuestra hoja de trucos gratuita para tener la clave a mano cuando más la necesites!

Por Priya Pedamkar

Introducción a Linux Crontab

Crontab no es más que una tabla con el demonio, cron utiliza para programar tareas en los sistemas operativos basados en Linux. Ahora te estarás preguntando qué definición tan infantil, ¡ni siquiera sabemos qué es cron! Así que, para eso, definimos cron como una utilidad de software o, en otras palabras, un proceso del sistema que permite a los usuarios programar planificadores basados en el tiempo para realizar tareas repetitivas en intervalos fijos de tiempo. Estos intervalos pueden ser una hora específica del día o incluso un horario regular con un intervalo fijo de días. Crontab significa “tabla cron” que esencialmente toma la ayuda de cron para la ejecución de tareas. Esta utilidad es muy útil en situaciones en las que se requiere la automatización en el mantenimiento del sistema o en casos de administración del sistema.

Sintaxis

Antes de entrar en profundidad en la comprensión de qué escenarios crontab ayudaría, o lo que es el principio de funcionamiento de crontab, la comprensión de la sintaxis detrás de la crontab es muy esencial para que al pasar por cualquiera de los detalles más, podemos mantener la sintaxis en mente y que mejorará nuestra interpretabilidad visual.

Desarrollo web, lenguajes de programación, pruebas de software y otros

La sintaxis para las operaciones en crontab

crontab [-u usuario] [-l | – r | – e] [-i] [-s]

En esta sintaxis, se puede utilizar cualquiera de las opciones o una combinación de ellas. – u ayuda al crontab a buscar específicamente el crontab de ese usuario. La opció n-l ayuda a mostrar el archivo crontab actual para su edición. La opció n-r ayuda a eliminar el crontab actual que esté presente. – e ayuda a editar el archivo crontab después de lo cual se utiliza la siguiente sintaxis para ingresar un comando. – i es muy similar a-r, con la única diferencia de que esta opción pregunta antes de eliminar un archivo crontab actual. – s es para SELinux, que es un Linux mejorado en seguridad y está fuera del alcance de este artículo.

La sintaxis para la entrada de un comando

[MINUTO] [HORA

En la sintaxis anterior, el crontab consta de los siguientes parámetros que deben pasarse para ejecutar el programador cron a la hora programada requerida. Aquí los campos incluyen:[COMANDO]es el comando que necesitaría ejecutar a la hora programada y ese horario es proporcionado por el siguiente parámetro: [MINUTO] es el minuto del día en que desea que se ejecute el COMANDO [HORA] es la hora del día en que debe ejecutarse el COMANDO, [DÍA DEL MES] es la mención del día del mes, en caso de que el COMANDO deba ejecutarse sólo en un día específico del mes, [MES] se utiliza cuando es necesario ejecutarlo sólo en un mes específico [DÍA DE LA SEMANA] se utiliza para indicar los días de la semana en que debe ejecutarse el comando y aquí, los días comienzan desde el 1 a partir del lunes hasta el 7 a partir del domingo.

Otra cosa que hay que recordar es que en caso de que alguna de las opciones no sea esencial para el caso de uso del programador cron, ese campo se sustituye por *, lo que esencialmente significa que el comando se ejecutará en todas las características en las que se mencione *. Por ejemplo, si el [MES]se menciona como *, ¡entonces el comando se ejecutará para todos los meses! Ahora un caso de Trivia, solo piense si todos los campos son *, que significaría eso. Trata de pensar en esto, ¡hasta que veamos la respuesta en el ejemplo de nuestra próxima sección!

¿Cómo funciona Crontab en Linux?

Aquí veremos cómo funciona Crontab en Linux. Crontabs están presentes en el local, por ejemplo, /var/spool o un subdirectorio dentro de la misma, por ejemplo, /var/spool/cron/crontabs. A pesar de que están presentes en cualquiera de estas ubicaciones se debe evitar la edición de ellos directamente y en su lugar tomar la ayuda de crontab comando para cumplir con la utilidad.

En este punto, vamos a entender cuáles son los componentes esenciales que se requieren antes de esperar la salida deseada de las operaciones crontab. En el primer comando, la entrada debe estar presente en el crontab. Estos no son más que los 5 campos que significan en qué momento del día el comando necesita ser ejecutado, y si necesita ser ejecutado o no. Se puede editar el crontab pasando primero a un modo de edición mediante el comando cronta b-e. Una vez introducida la hora, el crontab está totalmente operativo para ejecutarse a la hora del día indicada.

El demonio cron ayuda a realizar la comprobación para que el comando especificado pueda ejecutarse en ese momento. Este demonio comprueba el crontab cada minuto. Y esa es la razón por la que este crontab tiene detalles hasta minutos y no segundos. Una vez que cada minuto se realiza esta comprobación, se ejecuta el comando correspondiente cuyos campos mencionados en el crontab coinciden con ese mismo momento del tiempo.

Hay que tener mucho cuidado con situaciones como “horas que faltan”, o “adelanto de primavera” durante el horario de verano, en las que el comando podría no ejecutarse ni una sola vez, y por otro lado, si el tiempo ocurre más de una vez, como en el horario de otoño, un comando podría ejecutarse incluso dos veces.

Un caso más es que también se puede utilizar un guión para ejecutar el trabajo cron en múltiples momentos del día. Por ejemplo, si alguien quiere ejecutar una tarea cron a las 8 y a las 9 HORAS del día, se puede utilizar 8-9 para cumplir el requisito.

Otra cosa muy importante que se requiere para ejecutar las tareas cron es la configuración para permitir la ejecución de las tareas. Para permitir o no permitir que un usuario ejecute trabajos cron, cron. allow o cron. deny puede ser modificado en consecuencia para que el efecto tenga lugar.

Ejemplos de Linux Crontab

Nuestros últimos artículos sobre Linux

¿Qué es cron?

El comando cron es tan omnipresente en Linux y Unix, y ha sido imitado y reinventado tan a menudo que es casi un término genérico para algo que ocurre según un programa. Es una forma de automatización, y aunque existen diferentes implementaciones (Dillon’s cron, Vixie’s cron, chrony, y otros), y variaciones como anacron y systemd timers, la sintaxis y el flujo de trabajo han permanecido esencialmente iguales durante décadas.

Cron funciona en un sistema de “spool”, como las impresoras y el correo electrónico. Si no sabías que las impresoras y el correo electrónico utilizan un spool, no pasa nada, porque el objetivo de un archivo spool es que no tengas que pensar mucho en él. En un sistema Linux, el directorio /var/spool está diseñado como un hub central para archivos importantes pero de bajo nivel con los que el usuario no debe interactuar directamente. Uno de los spools gestionados en /var/spool son las tablas cron o “crontab” para abreviar. Todos los usuarios (incluido usted) de un sistema Linux tienen una crontab. Los usuarios pueden editar, ver y eliminar su propia crontab. Además, los usuarios pueden utilizar su crontab para programar tareas. El propio sistema cron supervisa las crontab y se asegura de que cualquier tarea incluida en una crontab se ejecute a la hora especificada.

  • Editar la configuración de cron
  • Puede editar su crontab utilizando el comando crontab junto con la opció n-e (para editar ). Por defecto, la mayoría de los sistemas invocan el editor de texto vim. Si usted, como yo, no usa Vim, entonces puede configurar un editor diferente para usted en su
  • /.bashrc. Yo lo he configurado con Emacs, pero también puedes probar con Nano, Kate o cualquiera que sea tu editor favorito. La variable de entorno EDITOR define qué editor de texto utilizas en tu terminal, mientras que la variable VISUAL define qué editor utilizas en modo gráfico:
  • Actualiza tu sesión de shell con tu nueva configuración:
  • Ahora puede editar su crontab con su editor preferido:
  • Programar una tarea
  • El sistema cron es esencialmente un sistema de calendario. Puede indicarle a cron con qué frecuencia desea que se ejecute una tarea mediante cinco atributos diferentes: minuto, hora, fecha, mes y día de la semana. El orden de estos atributos es estricto y no necesariamente intuitivo, pero puede pensar en ellos como filtros o máscaras. Por defecto, se puede pensar que todo está configurado como siempre o cada . Esta entrada ejecutaría touch /tmp/hello al principio de cada minuto durante cada hora de cada día durante todo el año:
  • Puede restringir esta programación global estableciendo definiciones específicas para cada atributo. Para hacer que el trabajo se ejecute en la marca de media hora de cada hora, establezca los minutos en 30 :

Puede restringir aún más esta instrucción con una hora específica. Este trabajo se ejecuta a las 3:30 AM cada mañana:

También puede hacer que el trabajo se ejecute sólo el primer día de cada mes:

Puede establecer un mes usando 1 para Enero hasta 12 para Diciembre, y puede establecer un día usando 0 para Domingo hasta 6 para Sábado. Este trabajo se ejecuta a las 3:15 durante el mes de abril, sólo los lunes:

Establecer incrementos

Todos estos ajustes coinciden exactamente con un valor . También puede utilizar la notación cron para ejecutar trabajos tras un periodo de tiempo determinado. Por ejemplo, puede ejecutar un trabajo cada 15 minutos:

Podría ejecutar un trabajo a las 10 AM cada tres días:

Puedes ejecutar un trabajo cada seis horas:

Abreviatura de cron

Las implementaciones modernas de cron han añadido una práctica abreviatura para las programaciones más comunes. Éstas son

@horario

@diario

@semanal

@mensual

@anual o @anualmente

Lista de cron jobs

Con el comando crontab, puede ver una lista de los trabajos cron programados:

Eliminar un crontab

Cuando haya terminado con un crontab, puede eliminarlo con la opció n-r:

La opció n-i significa interactivo. Le pedirá confirmación antes de eliminar el archivo.

Qué puede hacer cron

  • Una cosa es saber cómo usar
  • cron
  • pero otra cosa es saber para qué utilizarlo. El caso de uso clásico es un buen plan de copias de seguridad. Si tu ordenador está encendido la mayor parte del día o todo el día y toda la noche, puedes programar una copia de seguridad rutinaria de una partición importante. Yo ejecuto una aplicación de copia de seguridad llamada rdiff-backup en mi partición de datos principal todos los días a las 3 de la madrugada:
  • Otro uso común es el mantenimiento del sistema. En mi escritorio Slackware, actualizo el catálogo de repositorios locales todos los viernes por la tarde:
  • También podría ejecutar un script de Ansible a las 15:00 cada tres días para ordenar mi carpeta de Descargas:

Un poco de inversión en la salud de tu entorno informático hace mucho. Existen secuencias de comandos de desduplicación, monitores de tamaño de archivos y directorios /tmp, redimensionadores de fotos, desplazadores de archivos y muchas otras tareas menores que puedes programar para que se ejecuten en segundo plano y te ayuden a mantener tu sistema despejado. Con cron, tu ordenador puede cuidar de sí mismo como me gustaría que lo hiciera mi apartamento.

Recuerda la configuración de cron

Además de pensar por qué necesitas cron , lo más difícil de cron en mi experiencia ha sido recordar su sintaxis. Repítete esto una y otra vez hasta que lo hayas memorizado:

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Minutos, horas, fecha, mes, día de la semana.

Mejor aún, ¡descarga nuestra hoja de trucos gratuita para tener la clave a mano cuando más la necesites!En este artículo, vamos a revisar y ver cómo podemos programar y ejecutar tareas en segundo plano automáticamente a intervalos regulares utilizando el comando Crontab.Tratar con un trabajo frecuente manualmente es una tarea desalentadora para los administradores del sistema y tales tareas pueden ser programadas y ejecutadas automáticamente en segundo plano sin intervención humana utilizando el demonio cron en Linux o sistema operativo tipo Unix.

Por ejemplo, puede automatizar la copia de seguridad del sistema Linux, programar actualizaciones y sincronización de archivos, y muchos más utilizando el demonio Cron, que se utiliza para ejecutar tareas programadas desde la línea de comandos o utilizar herramientas en línea para generar trabajos cron.

Cron se despierta cada minuto y comprueba las tareas programadas en contable – Crontab ( CRON TABLE ) es una tabla donde podemos programar este tipo de tareas repetidas.

Consejos: Cada usuario puede tener su propio crontab para crear, modificar y borrar tareas. Por defecto cron está habilitado para los usuarios, sin embargo, podemos restringir a los usuarios añadiendo una entrada en el archivo /etc/cron. deny.

El archivo crontab consta de un comando por línea y tiene seis campos separados por espacios o tabuladores. Los primeros cinco campos representan el tiempo para ejecutar tareas y el último campo es para el comando.

Minuto (valores entre 0-59 )

Hora (valores entre 0-23 )

Hora (valores entre 0-23 )

Hora (valores entre 0-23 )

El día de la semana (valores entre 0-6 o Sun-Sat , aquí también puede utilizar las tres primeras letras del nombre de cada día, por ejemplo Sun o Wed . )