On m'a récemment signalé qu'il existait une alternative au logiciel cron, à savoir les timers système.
Cependant, je ne connais rien aux timers systemd ou systemd. Je n'ai utilisé que cron.
Il y a une petite discussion dans Arch Wiki . Cependant, je cherche une comparaison détaillée entre les cron
minuteries système et systemd, en mettant l'accent sur les avantages et les inconvénients. J'utilise Debian, mais j'aimerais une comparaison générale de tous les systèmes pour lesquels ces deux alternatives sont disponibles. Cet ensemble peut inclure uniquement les distributions Linux.
Voici ce que je sais
Cron est très vieux et remonte à la fin des années 1970. L'auteur original de cron est Ken Thompson, le créateur d'Unix. Vixie cron, dont les crons dans les distributions Linux modernes sont des descendants directs, date de 1987.
Systemd est beaucoup plus récent et quelque peu controversé. Wikipedia m'a dit que sa publication initiale était le 30 mars 2010.
Ainsi, ma liste actuelle des avantages des temporisateurs cron sur systemd est la suivante:
Il est garanti que Cron se trouve dans n’importe quel système de type Unix, en ce sens qu’il s’agit d’un logiciel compatible pouvant être installé. Cela ne va pas changer. En revanche, systemd peut rester ou non dans les distributions Linux à l’avenir. Il s’agit principalement d’un système init et peut être remplacé par un autre système init.
Cron est simple à utiliser. Certainement plus simple que les timers systemd.
La liste correspondante des avantages des timers systemd sur cron est la suivante:
- Les temporisateurs Systemd peuvent être plus flexibles et capables. Mais j'aimerais des exemples de cela.
Donc, pour résumer, voici certaines choses qu’il serait bon de voir dans une réponse:
- Une comparaison détaillée des timers cron et systemd, y compris les avantages et les inconvénients de l’utilisation de chacun.
- Exemples de choses que l'on peut faire et que l'autre ne peut pas faire.
- Au moins une comparaison côte à côte d'un script cron avec un script timers systemd.
la source
Réponses:
Voici quelques points à propos de ces deux :
vérifier ce que fait réellement votre travail cron peut être un peu un fouillis, mais tous les événements de minuterie systemd sont soigneusement consignés dans le journal systemd comme les autres unités systemd basées sur l'événement qui facilite grandement les choses.
Les timers systemd sont des services systemd avec toutes leurs capacités en matière de gestion des ressources, de planification de processeurs d'E / S, ...
Il existe une liste:
Avec l'option Dépendances, tout comme les autres services Systemd, il peut exister des dépendances sur l'heure d'activation.
Les unités peuvent être activées de différentes manières, et leur combinaison peut également être configurée. les services peuvent être démarrés et déclenchés par différents événements tels que l'utilisateur, le démarrage, les modifications de l'état du matériel ou, par exemple, 5 minutes après le branchement de certains éléments matériels, et ...
configuration beaucoup plus facile de certains fichiers et balises simples pour effectuer diverses personnalisations en fonction de vos besoins avec des minuteries systemd.
Activez / désactivez facilement le tout avec:
et tuer tous les enfants de l'emploi avec:
Les minuteries systemd peuvent être programmées avec des calendriers et des heures monotones, ce qui peut s'avérer très utile dans le cas de fuseaux horaires différents, et ...
Les événements temporels de systemd (calendrier) sont plus précis que cron (semble une précision de 1s)
Les événements time de systemd sont plus significatifs, pour ceux qui se répètent ou même ceux qui devraient se produire une fois, voici un exemple tiré du document :
Du point de vue de l'utilisation du processeur, systemd timer réveille le processeur pendant le temps écoulé, mais cron le fait plus souvent.
Les événements du minuteur peuvent être planifiés en fonction des heures de fin des exécutions. Certains délais peuvent être définis entre les exécutions.
La communication avec d’autres programmes est également remarquable. Il est parfois nécessaire que certains autres programmes connaissent les minuteries et l’état de leurs tâches.
la source
man systemd.time
ce qui semble le contredire: les fuseaux horaires non locaux, à l’exception de l’UTC, ne sont pas pris en charge.Directement de la bouche du cheval, pour ainsi dire: https://wiki.archlinux.org/index.php/Systemd/Timers#As_a_cron_replacement
Un extrait de la page ci-dessus:
la source