Cron es un demonio de programación que le permite programar la ejecución de tareas a intervalos específicos. Estas tareas se denominan trabajos cron y se pueden programar para que se ejecuten por minuto, hora, día del mes, mes, día de la semana o cualquier combinación de estos.
Los trabajos cron se utilizan normalmente para realizar operaciones de mantenimiento del sistema. Por ejemplo, se puede configurar un trabajo cron para automatizar tareas repetitivas, como realizar copias de seguridad de bases de datos, actualizar el sistema con los últimos parches de seguridad, borrar caché, enviar correos electrónicos, etc.
Este artículo explica cómo enumerar los trabajos cron.
Lista de trabajos cron de usuarios #
Los archivos crontab de los usuarios se nombran según el nombre del usuario y su ubicación varía según los sistemas operativos. En las distribuciones basadas en Red Hat como CentOS, los archivos crontab se almacenan en el /var/spool/cron
directorio, mientras que en Debian y Ubuntu los archivos se almacenan en /var/spool/cron/crontabs
directorio.
Para obtener una lista de todos los trabajos cron para el usuario con el que está conectado actualmente, use crontab
comando:
crontab -l
Si el usuario ha configurado trabajos cron, el contenido de las crontabs del usuario se mostrará en la pantalla. De lo contrario, el comando imprimirá no crontab for <username>
.
Para enumerar los trabajos cron de otros usuarios, use -u
opción para especificar el nombre de usuario al final del comando. Por ejemplo, para enumerar los trabajos cron del usuario llamado "marca", usaría:
sudo crontab -u mark -l
Cada archivo crontab de usuario tiene 600
permisos y propiedad del usuario. Solo root y usuarios con sudo
privilegios pueden ver los trabajos cron de otros usuarios.
Para averiguar qué usuarios han creado trabajos cron, enumere el contenido del spool
directorio como usuario root o sudo:
sudo ls -1 /var/spool/cron/crontabs
La salida se verá así:
root
mark
Lista de trabajos cron del sistema #
/etc/crontab
y los archivos dentro de /etc/cron.d
son archivos crontab de todo el sistema que solo los administradores del sistema pueden editar.
Usa cat
, less
o cualquier editor de texto para ver el contenido de los archivos:
cat /etc/crontab /etc/cron.d/*
En la mayoría de las distribuciones de Linux, también puede colocar scripts dentro de /etc/cron.{hourly,daily,weekly,monthly}
directorios, y los scripts se ejecutan cada hour/day/week/month
.
Cada script dentro de estos directorios debe tener permiso de ejecución. De lo contrario, el trabajo cron no se ejecutará.
Por ejemplo, para ver todos los trabajos cron semanales, escribiría:
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Si la salida está vacía, significa que no hay trabajos cron semanales.
Temporizadores Systemd #
Systemd timers son archivos de unidad que terminan con *.timer
sufijo y le permite ejecutar unidades de servicio basadas en el tiempo.
En las distribuciones de Linux que utilizan systemd como sistema de inicio, los temporizadores se utilizan como una alternativa al demonio cron estándar.
Para ver una lista de todos los temporizadores systemd en su máquina, ejecute el siguiente comando:
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Conclusión #
Le mostramos cómo listar trabajos cron y temporizadores systemd.
Siéntase libre de dejar un comentario si tiene alguna pregunta.