Diferencia entre revisiones de «Cron»

De La Wiki de KiVi
Sin resumen de edición
Línea 21: Línea 21:
== Funcionamiento de Cron ==
== Funcionamiento de Cron ==
Cron se ejecuta en segundo plano y verifica periódicamente el archivo crontab para encontrar tareas programadas. Cuando encuentra una tarea que debe ejecutarse, la inicia automáticamente. Esto permite a los usuarios automatizar tareas repetitivas, como copias de seguridad, procesamiento de archivos, envío de informes, entre otras.
Cron se ejecuta en segundo plano y verifica periódicamente el archivo crontab para encontrar tareas programadas. Cuando encuentra una tarea que debe ejecutarse, la inicia automáticamente. Esto permite a los usuarios automatizar tareas repetitivas, como copias de seguridad, procesamiento de archivos, envío de informes, entre otras.
Cada línea de un archivo crontab representa un trabajo y es compuesto por una expresión CRON, seguida por un comando shell para ejecutarse.
=== Formato del fichero de crontab ===
De entre muchos ficheros, quiero comenzar con el fichero genérico de crontab, ubicado en '''/etc/crontab''', en el que podemos añadir las tareas programadas por el sistema especificando el usuario que las ejecuta, '''este fichero no está disponible por defecto en las estaciones de trabajo'''.
El fichero de crontab tiene el siguiente formato:<blockquote>SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed</blockquote>
En el que la línea más importante es la última que indica el tiempo de ejecución, el usuario que lo ejecuta y el comando.
== crontab como gestor de tareas por usuario ==
Las distribuciones actuales permiten que todos los usuarios puedan gestionar sus propias tareas, obviamente, según el usuario tendrán acceso y preferencias, por ejemplo, una tarea programada por "'''root'''" tiene prioridad sobre el resto.
Las tareas se gestionan con el comando:
crontab
Para poder editar se utiliza la opción:
crontab -e
Para poder listar las tareas del usuario sin editar podemos poner:
crontab -l
Y para ver las tareas de otro usuario, por ejemplo que "'''root'''" vea las tareas del usuario "'''suport'''"<blockquote>sudo -u suport crontab -l</blockquote>Para borrar las tareas tenemos la opción de editarlas como antes he mostrado o ejecutar:<blockquote>crontab -r</blockquote>Que borra todas las tareas.
Una vez están editadas las tareas no hace falta reiniciar el servicio ya que se aplican al momento.
'''IMPORTANTE -''' es necesario recordar que NO es lo mismo ejecutar el comando '''"crontab -e"''' que '''"sudo crontab -e"''' , el primer comando lo ejecuta el usuario actual mientras que el segundo lo ejecuta '''root'''.
== Tareas cron ==

Revisión del 08:20 24 abr 2024

Cron
Programar tareas con cron
TítuloPrograma tareas por usuario o sistema
Cabecera3
Enlace del manual de redhathttps://www.redhat.com/sysadmin/linux-cron-command

Introducción

Cron es una herramienta de administración de tiempo en sistemas operativos Unix y Unix-like, que permite a los usuarios programar tareas para que se ejecuten automáticamente en momentos específicos, ya sea una vez, de forma recurrente o en momentos predefinidos. Crontab, por otro lado, es el archivo utilizado por el sistema para almacenar y administrar las listas de tareas programadas por los usuarios.

Funcionamiento de Cron

Cron se ejecuta en segundo plano y verifica periódicamente el archivo crontab para encontrar tareas programadas. Cuando encuentra una tarea que debe ejecutarse, la inicia automáticamente. Esto permite a los usuarios automatizar tareas repetitivas, como copias de seguridad, procesamiento de archivos, envío de informes, entre otras.

Cada línea de un archivo crontab representa un trabajo y es compuesto por una expresión CRON, seguida por un comando shell para ejecutarse.

Formato del fichero de crontab

De entre muchos ficheros, quiero comenzar con el fichero genérico de crontab, ubicado en /etc/crontab, en el que podemos añadir las tareas programadas por el sistema especificando el usuario que las ejecuta, este fichero no está disponible por defecto en las estaciones de trabajo.

El fichero de crontab tiene el siguiente formato:

SHELL=/bin/bash

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

MAILTO=root

  1. For details see man 4 crontabs
  1. Example of job definition:
  1. .---------------- minute (0 - 59)
  1. |  .------------- hour (0 - 23)
  1. |  |  .---------- day of month (1 - 31)
  1. |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
  1. |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
  1. |  |  |  |  |
  1. *  *  *  *  * user-name  command to be executed


En el que la línea más importante es la última que indica el tiempo de ejecución, el usuario que lo ejecuta y el comando.

crontab como gestor de tareas por usuario

Las distribuciones actuales permiten que todos los usuarios puedan gestionar sus propias tareas, obviamente, según el usuario tendrán acceso y preferencias, por ejemplo, una tarea programada por "root" tiene prioridad sobre el resto.

Las tareas se gestionan con el comando: crontab Para poder editar se utiliza la opción: crontab -e Para poder listar las tareas del usuario sin editar podemos poner: crontab -l

Y para ver las tareas de otro usuario, por ejemplo que "root" vea las tareas del usuario "suport"

sudo -u suport crontab -l

Para borrar las tareas tenemos la opción de editarlas como antes he mostrado o ejecutar:

crontab -r

Que borra todas las tareas.

Una vez están editadas las tareas no hace falta reiniciar el servicio ya que se aplican al momento.

IMPORTANTE - es necesario recordar que NO es lo mismo ejecutar el comando "crontab -e" que "sudo crontab -e" , el primer comando lo ejecuta el usuario actual mientras que el segundo lo ejecuta root.

Tareas cron