Lorsque sur un serveur il y a plusieurs utilisateurs qui sont autorisés à faire des crons, il peut devenir utile de gérer le lancement de ces tâches afin d’éviter que plusieurs ne soient déclenchées au même moment.
Connecté avec les droits super-utilisateur on peut lister l’ensemble des crontabs (listes de tâches d’un utilisateur) à l’aide de la commande suivante :
- for user in $(cut -f1 -d: /etc/passwd); do echo -e "\nUtilisateur:\x1b[32;01m $user \x1b[39;49;00m"; crontab -u $user -l; done
NB : les séquences échappées \x1b[32 ;01m et \x1b[39 ;49 ;00m sont les codes couleurs permettant de colorer en vert le nom de l’utilisateur
On obtient un retour ressemblant à :
Connaissant l’utilisateur d’un crontab on peut alors l’éditer.
Exemple pour le crontab de l’utilisateur Toto :
- crontab -e -u toto
Pour récupérer cette liste sous forme d’un fichier texte liste_crontabs.txt (par exemple pour une migration de machine), la commande devient alors :
- for user in $(cut -f1 -d: /etc/passwd); do echo -e $user >> liste_crontabs.txt;crontab -u $user -l >> liste_crontabs.txt;done