Les Cron (tâches) sont rattachés à un utilisateur système sous le système d’exploitation Linux.
Par mesure de sécurité il est fortement conseillé d’exécuter ces crons sous un autre utilisateur que root. Dans le cas où vous faites de la maintenance sur des serveurs ne vous appartenant pas, cela devient vite un casse tête de trouver quel utilisateur exécute ces tâches ?
A titre de rappel, la commande pour lister les cron job de l’utilisateur courant :
# crontab -l
Pour lister les cron job d’un autre utilisateur que l’utilisateur courant :
# crontab -u nom_utilisateur -l
A condition toutefois d’avoir les droits de lecture sur le fichier, ce qui peut ne pas être le cas pour tous les utilisateurs.
Je vous propose de lister les tâches de tous les utilisateurs (listés dans /etc/passwd). Définissons un alias depuis l’utilisateur root :
# alias cronall='for user in $(cut -f1 -d: /etc/passwd); do echo -e "\n\n==> $user:" && crontab -u $user -l; done'
Il vous suffit ensuite de faire appel à cronall :
# cronall ==> root: # m h dom mon dow command 30 23 * * * df >> test_blogmotion.fr ==> daemon: no crontab for daemon ==> bin: no crontab for bin ==> sys: no crontab for sys ==> sync: no crontab for sync ==> mail: no crontab for mail ==> www-data: no crontab for www-data ==> backup: no crontab for backup
Les tâches sont listées par utilisateur, plutôt pratique. Dans mon cas, seul l’utilisateur root possédait un cron job.
Attention : ce script ne fonctionne pas sur les crons périodiques (cron.daily, cron.weekly, etc.) qui sont dans des répertoires distincts et non liés à un utilisateur mais au système. Pour lister ces crons une commande simple suffira pour trouver ce que vous cherchez :
cat /etc/cron.d/* | grep "votre recherche"
De même que pour lister tous les scripts (sans le contenu) :
ls -al /etc/cron.*
Source d’inspiration du premier script
Auteur : Mr Xhark
Fondateur du blog et passionné par les technologies je partage mes découvertes quotidiennement.








Déjà 5 commentaires
Twitter: http://twitter/sameganegie
dit :
13 novembre 2009 à 7h18
C’est une bonne info, mais j’utilise rarement cette commande en étant dans un environnement mono-utilisateur, mais c’est bon à savoir.
9 juillet 2010 à 10h19
Pour ma part j’ai trouvé tres utile cette commande ! Grand merci
13 septembre 2010 à 11h33
merci pour l’info, cela m’a permis aussi de découvrir la commande cut qui peut etre utile
5 novembre 2010 à 11h56
Bonjour, je travaille dans un environnement de prod Linux, en tant qu’utilisateur non privilégié. Je n’ai donc pas droit au flag -u de la commande crontab. Je n’ai pas non plus accès au répertoire /var/spool/cron (particularité de RHEL, et d’Ubuntu aussi).
Les ingénieurs système refusent d’ouvrir l’accès à ce répertoire.
Avez-vous une solution miracle, car j’ai une quinzaine d’utilisateurs de production, et il m’est utile de surveiller que toutes les crontabs sont actives ?
Merci de vos réponses.
St33v0
5 novembre 2010 à 13h06
@St33v0: Malheureusement sans droit je ne vois pas trop. Peut-être du côté du fichier sudoers ?