Dependiendo de cómo esté configurado su sistema Linux, puede buscar en:
/var/spool/cron/*
(usuario crontabs)/etc/crontab
(crontab en todo el sistema)
además, muchas distribuciones tienen:
-
/etc/cron.d/*
Estas configuraciones tienen la misma sintaxis que/etc/crontab
-
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
Estos son simplemente directorios que contienen ejecutables que se ejecutan cada hora, día, semana o mes, según su nombre de directorio.
Además de eso, puede tener trabajos en (marque /var/spool/at/*
), anacron (/etc/anacrontab
y /var/spool/anacron/*
) y probablemente otros que estoy olvidando.
Con la mayoría de los Cron (p. ej., Vixie-Cron - Debian/Ubuntu predeterminado, Cronie - Fedora predeterminado, Solaris Cron...) obtiene la lista de trabajos cron programados para el usuario actual a través de:
$ crontab -l
o para otro usuario a través de
# crontab -l -u juser
Para obtener los crontabs para todos los usuarios, puede recorrer todos los usuarios y ejecutar este comando.
Alternativamente, puede buscar los archivos de spool. Por lo general, se guardan en /var/spool/cron
, p.ej. para el siguiente directorio de vcron
/var/spool/cron/crontabs
contiene todos los crontabs configurados de todos los usuarios, excepto el usuario raíz, que también puede configurar trabajos a través del crontab de todo el sistema, que se encuentra en
/etc/crontab
Con cronie (predeterminado en Fedora/CentOS), hay un .d
directorio de configuración de estilo para trabajos cron del sistema, también:
/etc/cron.d
(Como siempre, el .d
simplifica el mantenimiento de las entradas de configuración que forman parte de diferentes paquetes).
Para mayor comodidad, la mayoría de las distribuciones también proporcionan directorios donde los scripts vinculados/almacenados se ejecutan periódicamente, por ejemplo:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
La ejecución oportuna de esos scripts generalmente se administra a través de run-parts
entradas en el crontab del sistema o a través de anacron.
Con Systemd (por ejemplo, en Fedora, CentOS 7, ...) la ejecución periódica de trabajos se puede configurar adicionalmente a través de unidades de temporizador. Los temporizadores del sistema habilitados se pueden mostrar a través de:
$ systemctl list-timers
Tenga en cuenta que los usuarios además de root pueden tener instancias de systemd de usuario ejecutándose donde también se configuran los temporizadores. Por ejemplo, en Fedora, de forma predeterminada, se inicia una instancia de systemd de usuario para cada usuario que está conectado actualmente. Se pueden reconocer a través de:
$ ps aux | grep 'systemd[ ]--user'
Esos temporizadores de usuario se pueden enumerar a través de:
$ systemctl --user list-timers
Una alternativa a emitir el list-timers
El comando es buscar archivos de unidades de temporizador (patrón:*.timer
) y enlaces simbólicos a ellos en los directorios de configuración habituales del sistema y del usuario systemd:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(Al igual que con las unidades de servicio normales, una unidad de temporizador se habilita mediante la creación de un enlace simbólico en el directorio de configuración de systemd derecho).
Véase también:
- Artículo de ArchWiki sobre Cron
- Artículo de ArchWiki sobre Systemd Timers
Para enumerar todos los cron para el usuario dado.
crontab -u nombre de usuario -l;
Para listar todos los crones para todos los usuarios
Ejecutarlo como superusuario
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done