Aller au contenu
Tout en local

Cron vers systemd timer

Convertissez une expression cron en une paire d'unités .timer et .service systemd prête à l'emploi.

Entrée
Sortie

Cron vers systemd timer

Collez une expression cron — celle que vous utiliseriez dans un crontab, comme `0 3 * * *` ou `*/15 9-17 * * 1-5` — et cet outil la convertit en une valeur `OnCalendar=` systemd, puis assemble l'unité complète `.timer` et son unité `.service` correspondante. Migrer un serveur de cron à systemd signifie habituellement faire cette traduction manuellement pour chaque tâche; cela le fait instantanément et correctement, y compris l'expansion des champs pour les pas et les plages.

Définissez le nom de l'unité et la commande à exécuter, et optionnellement l'utilisateur et le répertoire de travail que le service doit utiliser. Le délai aléatoire ajoute `RandomizedDelaySec=` pour qu'une flotte de serveurs ne se réveille pas tous à la fois; Persistant ajoute `Persistent=true` pour qu'une exécution manquée pendant que la machine était éteinte s'exécute dès son retour. Un fuseau horaire ajoute un nom de zone IANA à chaque ligne de calendrier au lieu de dépendre de l'heure locale du système. Collez plusieurs lignes cron à la fois pour construire un timer avec plusieurs entrées `OnCalendar=` — pratique pour une tâche qui avait autrefois plus d'une ligne dans le crontab.

Activez la description en langage naturel pour obtenir un commentaire d'une ligne au-dessus de chaque calendrier expliquant quand il s'exécute, dans votre propre langue. L'outil surveille également la seule construction cron que systemd ne peut vraiment pas reproduire: quand le jour du mois et le jour de la semaine sont tous deux restreints, cron les traite comme OR tandis que OnCalendar de systemd les ET toujours — quand cela se produit, un commentaire d'avertissement est ajouté pour que l'écart ne soit pas envoyé silencieusement. Un champ hors plage ou une expression avec un nombre incorrect de champs est signalé comme une simple erreur au lieu d'être deviné.

Tout fonctionne dans votre navigateur — l'expression cron et le fichier de l'unité ne quittent jamais votre appareil. Copiez le résultat, téléchargez-le en tant que fichier .txt à placer dans `/etc/systemd/system/`, ou envoyez-le à un autre outil pour continuer à travailler dessus.

FAQ

Pourquoi la sortie inclut-elle deux unités?
Un timer systemd ne fait que planifier; il a besoin d'une unité .service correspondante pour exécuter réellement la commande. L'outil génère les deux, liées avec Unit=.
Puis-je convertir plus d'une ligne cron à la fois?
Oui. Collez plusieurs expressions, une par ligne, et elles deviennent plusieurs entrées OnCalendar= dans une seule unité timer pour la même commande.
Que signifie l'avertissement jour-du-mois/jour-de-la-semaine?
cron se déclenche quand l'un ou l'autre champ correspond si les deux sont restreints; OnCalendar de systemd nécessite toujours que les deux correspondent. L'outil vous avertit quand cela change le calendrier au lieu de le convertir silencieusement.
Supporte-t-il @daily, @hourly et les autres macros cron?
Oui, ainsi que @weekly, @monthly, @yearly et @annually/@midnight, développés à leurs équivalents standard à cinq champs avant la conversion.
Mon expression cron ou ma commande est-elle téléchargée quelque part?
Non. La conversion s'exécute entièrement dans votre navigateur — rien de ce que vous tapez n'est envoyé à un serveur.