Tâches planifiées : cron et timers
Lire et écrire une ligne de crontab, comprendre l'environnement réduit de cron, utiliser at et planifier avec un timer systemd, y compris la tâche manquée.
- 35 cartes
- 5 thèmes
- Gratuit
Le programme, thème par thème
Le poids de chaque thème suit celui que lui donne l'examen.
- Notions
- Questions
- Ranger et relier
- Mises en situation
- Comprendre
Quelques cartes du deck
Ligne de crontab : de quoi s'agit-il ?
Voir la réponse
Ligne qui associe cinq champs de date (minute, heure, jour du mois, mois, jour de la semaine) à une commande, lancée quand tous les champs correspondent.
Un champ accepte
*(toutes les valeurs), une liste1,4, un intervalle1-5ou un pas*/15.crontab -lliste les lignes de l'utilisateur etcrontab -eles édite.Quand part la ligne « 30 2 * * 1,4 » ?
- Les lundis et jeudis, à 2 h 30
- Le 1er et le 4 de chaque mois, à 2 h 30 du matin
- Tous les jours à 2 h 30, sauf les lundis et les jeudis
- Les mardis et vendredis, à 2 h 30, avec le dimanche pour premier jour
Voir la réponse
Les lundis et jeudis, à 2 h 30
Le troisième champ est le jour du mois, le cinquième le jour de la semaine, où 1 vaut lundi et 0 ou 7 dimanche. Les deux premiers champs donnent d'abord la minute (30), puis l'heure (2).
Les cinq champs d'une ligne de crontab sont, dans l'ordre : …, …, …, … et ….
Voir la réponse
Les cinq champs d'une ligne de crontab sont, dans l'ordre : minute, heure, jour du mois, mois et jour de la semaine.
Le plus petit vient en premier :
30 7 * * 1-5se lit minute 30, heure 7, tous les jours du mois, tous les mois, du lundi au vendredi.Pas d'une expression cron : de quoi s'agit-il ?
Voir la réponse
Écriture */n ou a-b/n qui retient une valeur sur n dans un champ : en minute, */15 donne 0, 15, 30 et 45.
*/5 * * * *part toutes les 5 minutes, mais5 * * * *ne part qu'à la cinquième minute de chaque heure : l'étoile et la barre oblique font toute la différence.Le script réussit dans le terminal mais échoue chaque nuit sous cron avec « pg_dump: command not found ». Quelle est la cause probable, et la solution ?
- pg_dump n'est pas installé sur la machine : installer le paquet des outils PostgreSQL
- Le compte de l'utilisateur n'a pas le droit de lancer des scripts : lui donner sudo
- Le PATH réduit de cron ne contient pas le dossier de pg_dump : écrire son chemin absolu ou poser PATH= en tête de la crontab
- Cron ignore les scripts situés hors de /etc/cron.d : les déplacer dans ce dossier
Voir la réponse
Le PATH réduit de cron ne contient pas le dossier de pg_dump : écrire son chemin absolu ou poser PATH= en tête de la crontab
Cron ne lit ni profil ni
.bashrc, et sonPATHse limite aux dossiers système de base. Puisque la commande marche à la main, elle est installée : c'est son chemin que cron ne connaît pas.