Cómo mostrar y listar Cron Jobs usando Crontab ⋆ ALexHost SRL

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
27.12.2024

Cómo mostrar y listar Cron Jobs usando Crontab

La utilidad cron de los sistemas operativos tipo Unix permite a los usuarios programar tareas (comandos o secuencias de comandos) para que se ejecuten automáticamente a horas o intervalos específicos. Tanto si mantiene un servidor como si gestiona tareas automatizadas en su máquina local, cron es una herramienta esencial tanto para administradores de sistemas como para desarrolladores.

En este artículo, explicaremos cómo mostrar y listar los trabajos de cron mediante el comando crontab, ayudándole a gestionar las tareas programadas de forma eficaz.

¿Qué es crontab?

Crontab (abreviatura de “tabla cron”) es un archivo que define las tareas programadas en el sistema cron. Cada usuario de un sistema, incluido el usuario root, puede tener su propio crontab, que especifica las tareas que desea automatizar.

El archivo crontab consta de tareas cron en la siguiente sintaxis:

* * * * * comando_a_ejecutar
| | | | |
| | | | ----- día de la semana (0 - 7) (domingo=0 ó 7)
| | | ---------- mes (1 - 12)
| | --------------- día del mes (1 - 31)
| -------------------- hora (0 - 23)
------------------------- minuto (0 - 59)

Esta estructura permite controlar con precisión cuándo se ejecutan los trabajos, lo que convierte a cron en una potente herramienta de automatización.

Cómo listar Cron Jobs con Crontab

Para administrar los trabajos cron, el comando crontab es la utilidad a la que debe recurrir. A continuación se explica cómo mostrar los trabajos cron de un usuario específico o del sistema.

1. Cómo ver sus propios cron jobs

Para ver los cron jobs de su usuario actual, ejecute el siguiente comando en el terminal:

crontab -l

Esto listará todas las tareas programadas para el usuario actualmente conectado al sistema. Si no hay tareas cron, el comando devolverá una lista vacía o un mensaje indicando que no hay crontab para el usuario.

Ejemplo de salida:

# comando m h dom mon dow
0 0 * * * /home/usuario/backup.sh
30 2 * * 7 /home/user/scripts/cleanup.sh

En este ejemplo:

  • Un script de copia de seguridad
    (backup.sh
    ) se ejecuta todos los días a medianoche.
  • Un script de limpieza
    (cleanup.sh
    ) se ejecuta todos los domingos a las 2:30 AM.

2. Listado de Cron Jobs para otro usuario

Si tiene privilegios de root o sudo, puede ver los cron jobs de cualquier usuario utilizando el indicador

-u
seguido del nombre de usuario:

sudo crontab -l -u nombredeusuario

Sustituya nombredeusuario por el nombre de usuario real del usuario cuyas tareas de cron desea ver.

Por ejemplo, para listar los trabajos cron de un usuario llamado john, ejecute:

sudo crontab -l -u john

Esto mostrará todos los trabajos cron programados para ese usuario.

3. Listado de Cron Jobs de todo el sistema

Además de las tareas cron específicas de cada usuario, existen tareas cron para todo el sistema programadas por el usuario root o del sistema. Se almacenan en directorios como /etc/crontab, /etc/cron.d/ y el directorio /var/spool/cron/crontabs.

Para listar los trabajos cron de todo el sistema, puede abrir y ver el archivo /etc/crontab:

cat /etc/crontab

El resultado podría ser el siguiente:

SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin#
m h dom mon dow user command
17 * * * root cd / && run-parts –report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron | ( cd / && run-parts –report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts –report /etc/cron.monthly )

En este ejemplo:

  • los trabajos de
    /etc/cron.hourly
    se ejecutan en el minuto 17 de cada hora.
  • las tareas
    /etc/cron.daily
    se ejecutan todos los días a las 6:25 de la mañana.
  • las tareas
    /etc/cron.weekly
    se ejecutan todos los domingos a las 6:47 AM.
  • las tareas
    /etc/cron.
    monthly se ejecutan el primer día de cada mes a las 6:52 AM.

También puedes ver las tareas en /etc/cron.d/ ejecutando:

ls /etc/cron.d/

Cada archivo de este directorio puede contener tareas cron adicionales para servicios del sistema.

4. Listado de Cron Jobs en el directorio /var/spool/cron/

Las tareas cron específicas del usuario suelen almacenarse en el directorio /var/spool/cron/crontabs. Puede navegar a este directorio y listar todos los archivos de tareas cron:

ls /var/spool/cron/crontabs

Esto mostrará los archivos crontab de cada usuario. Para ver el contenido del crontab de un usuario específico, puede ejecutar

cat /var/spool/cron/crontabs/nombredeusuario

Esto proporciona la misma salida que ejecutar crontab -l -u nombredeusuario.

Edición de Cron Jobs

Si necesita modificar o añadir nuevos cron jobs, puede editar su crontab ejecutando:

crontab -e

Esto abre su crontab en el editor de texto predeterminado, permitiéndole añadir o modificar tareas existentes.

Por ejemplo, para añadir una nueva tarea que ejecute un script todos los días a las 3:00 AM, añada esta línea:

0 3 * * * /home/usuario/script.sh

Después de guardar y salir del archivo, el trabajo se programará inmediatamente.

Comandos comunes de la lista Crontab

Esta es una referencia rápida para listar trabajos cron en diferentes escenarios:

  • Listar las tareas cron del usuario actual:
    crontab -l
  • Listar las tareas cron de otro usuario (requiere sudo):
    sudo crontab -l -u nombredeusuario
  • Listar los cron jobs de todo el sistema:
    cat /etc/crontab
  • Lista todos los cron jobs en
    /etc/cron.d/
    :
    ls /etc/cron.d/
  • Ver las tareas cron almacenadas en
    /var/spool/cron/crontabs/
    :
    ls /var/spool/cron/crontabs

Conclusión

Listar y mostrar los trabajos cron mediante crontab es una forma sencilla pero potente de gestionar las tareas programadas en un sistema de tipo Unix. Ya sea que esté administrando sus propios trabajos cron específicos de usuario o tareas automatizadas en todo el sistema, la comprensión de estos comandos ayuda a garantizar que sus trabajos se ejecuten sin problemas y a tiempo.

Si domina cron, podrá automatizar tareas repetitivas, mantener copias de seguridad y asegurarse de que sus secuencias de comandos se ejecutan de forma coherente en todo su entorno.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills