Cron est un démon de planification qui vous permet de planifier l'exécution de tâches à des intervalles spécifiés. Ces tâches sont appelées tâches cron et peuvent être programmées pour s'exécuter par minute, heure, jour du mois, mois, jour de la semaine ou toute combinaison de ceux-ci.
Les tâches cron sont généralement utilisées pour effectuer des opérations de maintenance du système. Par exemple, une tâche cron peut être configurée pour automatiser les tâches répétitives telles que la sauvegarde des bases de données, la mise à jour du système avec les derniers correctifs de sécurité, la suppression du cache, l'envoi d'e-mails, etc.
Cet article explique comment lister les tâches cron.
Liste des tâches Cron des utilisateurs #
Les fichiers crontab des utilisateurs sont nommés en fonction du nom de l'utilisateur et leur emplacement varie selon les systèmes d'exploitation. Dans les distributions basées sur Red Hat telles que CentOS, les fichiers crontab sont stockés dans le répertoire /var/spool/cron
répertoire, tandis que sur Debian et Ubuntu, les fichiers sont stockés dans le répertoire /var/spool/cron/crontabs
répertoire.
Pour obtenir une liste de toutes les tâches cron pour l'utilisateur avec lequel vous êtes actuellement connecté, utilisez le crontab
commande :
crontab -l
Si l'utilisateur a configuré des tâches cron, le contenu des crontabs de l'utilisateur sera affiché à l'écran. Sinon, la commande affichera no crontab for <username>
.
Pour répertorier les tâches cron d'autres utilisateurs, utilisez le -u
option pour spécifier le nom d'utilisateur à la fin de la commande. Par exemple, pour répertorier les tâches cron de l'utilisateur nommé "mark", vous utiliserez :
sudo crontab -u mark -l
Chaque fichier crontab utilisateur a 600
autorisations et appartenant à l'utilisateur. Uniquement root et utilisateurs avec sudo
les privilèges peuvent voir les tâches cron des autres utilisateurs.
Pour savoir quels utilisateurs ont créé des tâches cron, listez le contenu du spool
répertoire en tant qu'utilisateur root ou sudo :
sudo ls -1 /var/spool/cron/crontabs
La sortie ressemblera à ceci :
root
mark
Liste des tâches Cron du système #
/etc/crontab
et les fichiers à l'intérieur du /etc/cron.d
répertoire sont des fichiers crontab à l'échelle du système qui ne peuvent être modifiés que par les administrateurs système.
Utilisez cat
, less
ou n'importe quel éditeur de texte pour visualiser le contenu des fichiers :
cat /etc/crontab /etc/cron.d/*
Dans la plupart des distributions Linux, vous pouvez également placer des scripts dans le /etc/cron.{hourly,daily,weekly,monthly}
répertoires, et les scripts sont exécutés toutes les hour/day/week/month
.
Chaque script à l'intérieur de ces répertoires doit avoir l'autorisation d'exécution. Sinon, la tâche cron ne sera pas exécutée.
Par exemple, pour afficher toutes les tâches cron hebdomadaires, vous saisiriez :
ls -l /etc/cron.weekly/
-rwxr-xr-x 1 root root 813 Feb 10 2019 man-db
Si la sortie est vide, cela signifie qu'il n'y a pas de tâches cron hebdomadaires.
Temporisateurs Systemd #
Les temporisateurs systemd sont des fichiers unitaires qui se terminent par *.timer
suffixe et vous permettent d'exécuter des unités de service en fonction du temps.
Sur les distributions Linux utilisant systemd comme système d'initialisation, les temporisateurs sont utilisés comme alternative au démon cron standard.
Pour afficher une liste de tous les minuteurs systemd sur votre ordinateur, exécutez la commande suivante :
systemctl list-timers
NEXT LEFT LAST PASSED UNIT ACTIVATES
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago logrotate.timer logrotate.service
Sun 2020-02-16 00:00:00 UTC 1h 53min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago man-db.timer man-db.service
Sun 2020-02-16 03:50:52 UTC 5h 44min left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily.timer apt-daily.service
Sun 2020-02-16 06:12:38 UTC 8h left Sat 2020-02-15 17:04:11 UTC 5h 2min ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2020-02-16 18:44:56 UTC 20h left Sat 2020-02-15 17:16:10 UTC 4h 50min ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Conclusion #
Nous vous avons montré comment répertorier les tâches cron et les minuteurs systemd.
N'hésitez pas à laisser un commentaire si vous avez des questions.