Cómo comprobar si una tarea de cron está programada en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar las tareas programadas de cron en un sistema Linux. Comenzará viendo las tareas de cron específicas del usuario utilizando el comando crontab -l.

A continuación, explorará las configuraciones de cron a nivel de sistema inspeccionando el archivo /etc/crontab y examinando las programaciones definidas en los directorios /etc/cron.*. Esta experiencia práctica le proporcionará las habilidades esenciales para identificar y comprender cómo se programan las tareas para que se ejecuten automáticamente en un sistema Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/crontab("Job Scheduling") subgraph Lab Skills linux/ls -.-> lab-558705{{"Cómo comprobar si una tarea de cron está programada en Linux"}} linux/cat -.-> lab-558705{{"Cómo comprobar si una tarea de cron está programada en Linux"}} linux/crontab -.-> lab-558705{{"Cómo comprobar si una tarea de cron está programada en Linux"}} end

Ver las tareas de cron del usuario con crontab -l

En este paso, aprenderá cómo ver las tareas programadas para el usuario actual utilizando el comando crontab.

Cron es un programador de tareas basado en el tiempo en sistemas operativos similares a Unix. Permite a los usuarios programar comandos o scripts para que se ejecuten automáticamente en una hora o fecha específica. Estas tareas programadas a menudo se denominan "tareas de cron" (cron jobs).

Cada usuario en el sistema puede tener su propio conjunto de tareas de cron. Estas se almacenan en un archivo especial llamado "crontab" (tabla de cron).

Para ver las tareas de cron del usuario actual (labex), utilizará el comando crontab con la opción -l. La opción -l significa "listar" (list).

Abra la terminal si aún no lo ha hecho. Recuerde que puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Escriba el siguiente comando en la terminal y presione Enter:

crontab -l

Si aún no ha configurado ninguna tarea de cron para el usuario labex, es probable que vea un mensaje que indique que no hay entradas en la crontab. Esto es lo esperado en un entorno de usuario recién creado.

no crontab for labex

Esta salida confirma que el usuario labex actualmente no tiene ninguna tarea de cron personal programada.

Si hubiera alguna tarea programada para el usuario labex, se listarían aquí, mostrando la programación y el comando a ejecutar.

Comprender cómo ver las tareas de cron existentes es el primer paso para administrar las tareas programadas en un sistema Linux. En los siguientes pasos, explorará las configuraciones de cron a nivel de sistema.

Haga clic en Continuar para pasar al siguiente paso.

Verificar la crontab del sistema en /etc/crontab

En el paso anterior, aprendiste cómo ver las tareas de cron de un usuario específico. Ahora, exploremos las tareas de cron a nivel de sistema, que generalmente se configuran en el archivo /etc/crontab.

A diferencia de las crontabs de usuario administradas por el comando crontab, el archivo /etc/crontab es un archivo de configuración a nivel de sistema que puede ser editado directamente por el administrador del sistema (o un usuario con privilegios sudo). Este archivo a menudo contiene tareas de cron esenciales para el funcionamiento del sistema.

Para ver el contenido del archivo /etc/crontab, puedes usar un visor de texto de línea de comandos como cat o less. Dado que /etc/crontab es un archivo del sistema, es posible que necesites sudo para leerlo, aunque en este entorno de LabEx, generalmente puedes leerlo sin sudo. Usemos cat para mostrar el contenido directamente en la terminal.

Escribe el siguiente comando y presiona Enter:

cat /etc/crontab

Verás el contenido del archivo de la crontab del sistema. Puede parecerse a esto:

## /etc/crontab: system-wide crontab
## Unlike any other crontab you might learn about, this file has a fifth field
## which is the user that the command will run as.
#
## min hour day month wday user command
## ---- ---- --- ----- ---- ---- -------
#
## Example of job execution:
## .---------------- 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 to run job as
## |  |  |  |  |  |  . command to be executed
## |  |  |  |  |  |  |
## *  *  *  *  *  user command
#
... (other entries)

Observa la estructura de este archivo. Incluye comentarios que explican el formato, y cada línea que representa una tarea de cron tiene un campo adicional en comparación con las crontabs de usuario: el campo user. Este campo especifica el usuario con el que se debe ejecutar el comando.

Las crontabs del sistema se utilizan a menudo para tareas como actualizaciones del sistema, rotación de registros y otras actividades de mantenimiento que necesitan ejecutarse con privilegios elevados o como un usuario específico del sistema.

Al examinar /etc/crontab, obtienes información sobre las tareas automatizadas programadas a nivel de sistema.

Haz clic en Continuar para pasar al siguiente paso, donde explorarás otras ubicaciones para las tareas de cron del sistema.

Inspeccionar las programaciones de cron en /etc/cron.*

Además del archivo principal /etc/crontab, muchas distribuciones de Linux utilizan directorios como /etc/cron.d/, /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ y /etc/cron.monthly/ para organizar las tareas de cron a nivel de sistema.

Estos directorios proporcionan una forma más estructurada de administrar las tareas programadas. Los scripts colocados en /etc/cron.hourly/ se ejecutan cada hora, los de /etc/cron.daily/ se ejecutan todos los días, y así sucesivamente. El momento exacto de ejecución suele estar controlado por un script en /etc/crontab que ejecuta estos directorios periódicamente.

Vamos a inspeccionar el contenido de estos directorios para ver qué tareas del sistema están programadas.

Primero, listemos el contenido del directorio /etc/cron.d/. Este directorio a menudo contiene archivos colocados por paquetes instalados que definen tareas de cron específicas.

Escribe el siguiente comando y presiona Enter:

ls /etc/cron.d/

Puedes ver una salida similar a esta, que enumera los archivos dentro del directorio:

anacron  e2scrub_all  phpsessionclean

Estos archivos contienen definiciones de tareas de cron, con un formato similar al de /etc/crontab (incluyendo el campo de usuario). Puedes ver el contenido de cualquiera de estos archivos utilizando cat. Por ejemplo, para ver el archivo anacron:

cat /etc/cron.d/anacron

A continuación, veamos los directorios para tareas programadas cada hora, diarias, semanales y mensuales. Podemos listar el contenido de estos directorios utilizando ls.

Escribe los siguientes comandos uno por uno y presiona Enter después de cada uno:

ls /etc/cron.hourly/
ls /etc/cron.daily/
ls /etc/cron.weekly/
ls /etc/cron.monthly/

Puedes ver varios scripts o archivos listados en estos directorios. Por ejemplo, /etc/cron.daily/ a menudo contiene scripts para tareas como actualizar la lista de paquetes, limpiar archivos temporales o rotar registros.

ls /etc/cron.daily/
apt-compat  dpkg  google-chrome  man-db  mlocate  passwd  update-notifier-common

Estos scripts se ejecutan automáticamente por el sistema de cron en los intervalos especificados (cada hora, diariamente, semanalmente, mensualmente).

Al examinar los archivos en /etc/crontab y los directorios bajo /etc/cron.*, puedes obtener una visión integral de las tareas automatizadas que se ejecutan en el sistema. Esto es crucial para la administración del sistema y la resolución de problemas.

Ahora has explorado las principales ubicaciones para ver tanto las tareas de cron de usuario como las de todo el sistema.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar las tareas programadas de cron en Linux. Comenzaste viendo las tareas de cron específicas de un usuario utilizando el comando crontab -l, entendiendo que cada usuario puede tener su propio conjunto de tareas programadas almacenadas en su archivo de crontab. Viste cómo interpretar la salida, incluyendo el mensaje que indica que no hay tareas de cron existentes para el usuario actual.

Luego, comenzaste a explorar las configuraciones de cron a nivel de sistema, centrándote específicamente en el archivo /etc/crontab. Este archivo se utiliza para las tareas de cron a nivel de sistema y es administrado directamente por el administrador del sistema, en contraste con las crontabs de usuario. Comprender tanto las ubicaciones de las tareas de cron de usuario como las de todo el sistema es crucial para verificar de manera integral las tareas programadas en un sistema Linux.