Selon la configuration de votre système Linux, vous pouvez consulter :
/var/spool/cron/*
(utilisateur crontabs)/etc/crontab
(crontab à l'échelle du système)
De plus, de nombreuses distributions ont :
-
/etc/cron.d/*
Ces configurations ont la même syntaxe que/etc/crontab
-
/etc/cron.hourly
,/etc/cron.daily
,/etc/cron.weekly
,/etc/cron.monthly
Ce sont simplement des répertoires contenant des exécutables exécutés toutes les heures, tous les jours, toutes les semaines ou tous les mois, selon leur nom de répertoire.
En plus de cela, vous pouvez avoir at jobs (cochez /var/spool/at/*
), anacron (/etc/anacrontab
et /var/spool/anacron/*
) et probablement d'autres que j'oublie.
Avec la plupart des Crons (par exemple Vixie-Cron - Debian/Ubuntu par défaut, Cronie - Fedora par défaut, Solaris Cron ...) vous obtenez la liste des tâches cron planifiées pour l'utilisateur actuel via :
$ crontab -l
ou pour un autre utilisateur via
# crontab -l -u juser
Pour obtenir les crontabs pour tous les utilisateurs, vous pouvez boucler sur tous les utilisateurs et appeler cette commande.
Vous pouvez également rechercher les fichiers spoule. Généralement, ils sont enregistrés sous /var/spool/cron
, par exemple. pour le répertoire suivant de vcron
/var/spool/cron/crontabs
contient toutes les crontabs configurées de tous les utilisateurs - à l'exception de l'utilisateur root qui peut également configurer des tâches via la crontab à l'échelle du système, qui se trouve à
/etc/crontab
Avec cronie (par défaut sur Fedora/CentOS), il y a un .d
répertoire de configuration de style pour les tâches cron du système, ainsi :
/etc/cron.d
(Comme toujours, le .d
répertoire simplifie la gestion des entrées de configuration qui font partie de différents packages.)
Pour plus de commodité, la plupart des distributions fournissent également un répertoire dans lequel les scripts liés/stockés sont périodiquement exécutés, par exemple :
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
L'exécution opportune de ces scripts est généralement gérée via run-parts
entrées dans la crontab système ou via anacron.
Avec Systemd (par exemple sur Fedora, CentOS 7, ...) l'exécution périodique des tâches peut en outre être configurée via des unités de temporisation. Les minuteries système activées peuvent être affichées via :
$ systemctl list-timers
Notez que les utilisateurs à côté de root peuvent également avoir des instances d'utilisateur systemd en cours d'exécution là où les minuteries sont configurées. Par exemple, sur Fedora, par défaut, une instance d'utilisateur systemd est démarrée pour chaque utilisateur actuellement connecté. Ils peuvent être reconnus via :
$ ps aux | grep 'systemd[ ]--user'
Ces minuteries utilisateur peuvent être listées via :
$ systemctl --user list-timers
Une alternative à l'émission du list-timers
commande est de rechercher des fichiers d'unité de minuterie (motif :*.timer
) et des liens symboliques vers ceux-ci dans les répertoires de configuration habituels du système et de l'utilisateur 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
(Comme pour les unités de service normales, une unité de minuterie est activée via la création d'un lien symbolique dans le bon répertoire de configuration systemd.)
Voir aussi :
- Article ArchWiki sur Cron
- Article ArchWiki sur les temporisateurs Systemd
Pour lister tous les crons pour l'utilisateur donné.
crontab -u nom d'utilisateur -l ;
Pour lister tous les crons pour tous les utilisateurs
Exécutez-le en tant que super utilisateur
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done