Mon administrateur système a configuré de nombreuses tâches cron sur ma machine. Je voudrais savoir exactement ce qui est prévu pour quelle heure. Comment puis-je obtenir cette liste?
Mon administrateur système a configuré de nombreuses tâches cron sur ma machine. Je voudrais savoir exactement ce qui est prévu pour quelle heure. Comment puis-je obtenir cette liste?
Réponses:
Selon la configuration de votre système Linux, vous pouvez regarder dans:
/var/spool/cron/*
(crontabs utilisateur)/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
Il s’agit simplement de répertoires contenant des exécutables exécutés toutes les heures, tous les jours, toutes les semaines ou tous les mois, en fonction de leur nom de répertoire.
En plus de cela, vous pouvez avoir des emplois (vérifier /var/spool/at/*
), anacron ( /etc/anacrontab
et /var/spool/anacron/*
) et probablement d'autres que j'oublie.
/etc/cron.daily
. Comment fonctionne ce daily
fichier? A quelle heure vont les travaux quotidiens? Sur ma machine, ils semblent courir vers midi, mais il aimerait dire à mon administrateur système comment régler le problème sur minuit.
/etc/crontab
exemple, sur mon système Ubuntu, cron.daily est appelé : 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
ce qui signifie 6h25.
cronie
démon s’occupe de ceux qui utilisent la configuration dans /etc/anacrontab
.
/var/cron
aussi.
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 parcourir tous les utilisateurs et appeler cette commande.
Alternativement, vous pouvez rechercher les fichiers de spool. Habituellement, ils sont enregistrés sous /var/spool/cron
, par exemple pour le répertoire suivant vcron
/var/spool/cron/crontabs
contient toutes les crontabs configurées de tous les utilisateurs - à l'exception de l'utilisateur root qui est également capable de configurer des travaux via la crontab à l'échelle du système, située à l'emplacement suivant:
/etc/crontab
Avec cronie (par défaut sur Fedora / CentOS), il existe également un .d
répertoire de configuration de style pour les tâches système:
/etc/cron.d
(Comme toujours, le .d
répertoire simplifie la gestion des entrées de configuration appartenant à 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 exécutés périodiquement, par exemple:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
L’exécution en temps voulu de ces scripts est généralement gérée via des run-parts
entrées dans la crontab du système ou via anacron .
Avec Systemd (par exemple sur Fedora, CentOS 7, ...), l'exécution périodique de travaux peut également ê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 situés à côté de root peuvent également disposer d'instances utilisateur systemd où les minuteries sont configurées. Par exemple, sous Fedora, par défaut, une instance utilisateur systemd est démarrée pour chaque utilisateur actuellement connecté. Elles peuvent être reconnues via:
$ ps aux | grep 'systemd[ ]--user'
Ces timers utilisateur peuvent être listés via:
$ systemctl --user list-timers
Une alternative à l'émission de la list-timers
commande consiste à rechercher des fichiers d'unité de la minuterie (modèle:) *.timer
et des liens symboliques vers ceux-ci dans les répertoires système et utilisateur systemd config habituels:
$ 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 avec 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 également:
crontab -l -u root
(parce que ces tâches que je veux savoir sur run run root
), et il est dit que je n’ai pas de privilèges à utiliser -u
.
root
qu'utilisateur.
cronie
, tel qu’expédié dans Fedora et RHEL6, ne fait pas référence à ceux qui figurent dans /etc/crontab
, mais les utilise /etc/anacrontab
. Je peux me tromper à propos de toute implémentation réelle qui ne fait pas référence à cela dans aucun fichier de configuration. (Mais ensuite, je n'ai pas eu de
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
root
ouapache
autre, mais il faut utiliser/etc/crontab
ou (mieux, dans la plupart des distributions)/etc/cron.d
et/etc/cron.[timeframe]
.