Outils de développement · Générateur Crontab
anacron et cron.daily : comment les tâches planifiées survivent à une machine éteinte
· Contexte
cron Calendrier fiabilité planification
cron suppose que la machine est toujours allumée ; Anacron ne le fait pas. Cet article explique comment anacron suit la dernière exécution, comment les répertoires cron.daily de style Debian l'utilisent et comment choisir entre les deux.
Un scénario de machine à dormir se trouve en dehors du navigateur ; l'aperçu recherche uniquement les futurs candidats
ToolAcre ne peut pas observer si un ordinateur portable est resté en veille pendant 06:25. Sa fonction de prochaine exécution reçoit un instant de départ et recherche strictement vers l'avant, en commençant une minute plus tard. Les minutes correspondantes antérieures ne sont pas renvoyées car la fonctionnalité est un aperçu futur, et non un historique ou un moteur de récupération.
Cela rend la liste utile pour la planification mais silencieuse sur le rattrapage. Un ancien candidat disparu peut s'être présenté, avoir été ignoré ou avoir été pris en charge par un autre service ; le navigateur n'a aucun enregistrement d'exécution. Diagnostiquez le comportement des temps d'arrêt à partir du planificateur installé plutôt que de l'absence dans une liste future uniquement.
Le comportement d'exécution manquée du cron externe n'est pas établi ici
Le classeur affirmait que cron supprimait les minutes manquées. Aucune implémentation de démon ni test de disponibilité ne fait partie de ce référentiel, donc la revendication universelle n'est pas répétée. Ce qui est prouvé, c'est que ToolAcre lui-même ne met pas les tâches en file d'attente : il calcule les dates en mémoire et les renvoie à la page.
Un planificateur cible peut documenter une stratégie d'exécution manquée et un wrapper peut en ajouter une autre. Capturez explicitement cette politique. La même expression `0 6 * * *` peut participer à différentes conceptions de récupération sans modifier aucune de ses cinq valeurs.
l'état anacron et les délais ne sont pas implémentés
Il n'y a pas de fichier d'horodatage anacron, de compteur de périodes ou de délai de démarrage dans `cron.js`. L'analyseur connaît les champs du calendrier, tandis que l'aperçu connaît un horizon de recherche configurable. Ni l’un ni l’autre ne stocke la dernière fois qu’une action externe s’est terminée.
Par conséquent, cet article ne peut pas expliquer les transitions d'état exactes d'Anacron à partir des preuves du projet. Si un rattrapage est nécessaire, recherchez et testez l’installation réelle. ToolAcre peut toujours construire des lignes cron à heure précise conservées à côté de lui, mais il ne peut pas valider une politique anacron. La syntaxe
anacrontab est en dehors de l'analyseur à cinq champs
Une ligne anacrontab n'est pas une expression cron à cinq champs. Introduire sa période, son délai et son identifiant dans ToolAcre échouerait à la validation du nombre de champs ou de la valeur sans rien enseigner sur sa véritable syntaxe. Des objectifs de planification similaires n’impliquent pas des formats de fichiers interchangeables.
Conservez les validateurs natifs avec une grammaire native. Utilisez cette route pour les expressions minute par jour de la semaine et une source distincte pour la configuration de rattrapage basée sur la période. La traduction doit préserver les exigences opérationnelles, et non simplement forcer une forme de texte à passer par un autre analyseur. Le câblage
cron.daily ne peut pas être déduit de ce référentiel
Les mécanismes d'annuaire et les transferts entre packages sont absents de la base de code en cours d'examen. Le générateur ne peut pas savoir si `/etc/cron.daily` existe, quel exécuteur l'invoque ou ce qui se passe lorsqu'un autre package est installé. Un tel câblage constitue une preuve spécifique à l'environnement.
Inventoriez la cible avant de déplacer une tâche. Un nom de répertoire à lui seul ne révèle pas l’heure murale ni le comportement de rattrapage. Comparez la configuration de service observée avec l'exigence et conservez l'expression ToolAcre uniquement si la tâche reste réellement dans un chemin cron compatible.
Limite travaillée : comparer les futurs candidats sans promettre de rattrapage
Pour un exemple quotidien, saisissez `0 6 * * *` et sélectionnez la zone de déploiement. L'aperçu répertorie jusqu'à cinq futurs candidats d'horloge murale 06:00 à partir de maintenant. Si l’instant de départ est déjà passé le 06:00 d’aujourd’hui, demain devient le premier résultat. C'est un comportement de recherche prospective, pas une preuve de ce qui s'est passé ce matin.
Utilisez la liste pour vérifier l'intention du calendrier et la conversion de zone. Ensuite, redémarrez ou suspendez un environnement de test sécurisé pendant une période programmée et respectez la politique actuelle du planificateur. Les deux expériences répondent à des questions différentes et doivent rester documentées séparément.
Le comportement persistant du minuteur n'est pas vérifié et omis
Le classeur mentionnait un paramètre persistant dans un autre gestionnaire de services. Aucun analyseur unitaire ou test ne prend en charge cette déclaration ici. Il peut s'agir d'une recherche externe pertinente, mais ce module n'en fait pas une recommandation sans matériel source faisant autorité.
Une exigence d'exécution manquée mérite des critères d'acceptation explicites : s'il faut exécuter immédiatement, ignorer, fusionner ou conserver chaque occurrence. Sélectionnez un système qui documente le résultat requis et vérifiez-le. ToolAcre peut fournir la cadence cron utilisée comme référence, rien de plus.
À retenir : associez un calendrier à une politique relative aux courses manquées vérifiée séparément
Une expression récurrente est incomplète en tant que conception de fiabilité si la machine peut être indisponible. La correspondance du calendrier et la politique de rattrapage sont distinctes. ToolAcre expose le premier et n'a intentionnellement aucun état d'exécution persistant pour le second.
Prévisualisez l'avenir, enregistrez la zone, puis testez le comportement en cas de course manquée sur la destination. Si un autre mécanisme possède la récupération, documentez-le à côté de l'expression. Évitez de dire que le générateur ou les cinq champs garantissent une nouvelle tentative, car aucun des deux ne peut constater qu'une exécution a été manquée.