Generador d'expressions cron
Crea una expressió cron camp per camp, llegeix-la amb paraules, consulta les properes execucions en qualsevol zona horària i converteix-la a systemd o AWS.
Amb paraules
Tant el dia del mes com el dia de la setmana estan definits: el cron clàssic s'executa quan coincideix QUALSEVOL dels dos (no tots dos).
Constructor
| Camp | Mode | Valor |
|---|---|---|
| Segon0–59 | ||
| Minut0–59 | ||
| Hora0–23 | ||
| Dia del mes1–31, L | ||
| Mes1–12 o JAN–DEC | ||
| Dia de la setmana0–7 (0 i 7 = diumenge) o SUN–SAT |
Properes execucions
Altres formats
- línia de crontab
- systemd OnCalendar=
- Quartz / Spring
- AWS EventBridge
Com crear una expressió cron
- Escriu o enganxa una expressió a Expressió cron, o tria’n una de Valors predefinits. Les macros com
@dailyo@weeklytambé s’accepten. - O fes servir el Constructor: per a cada camp tria un Mode (Cada, Cada N, Valors concrets, Interval o Personalitzat) i omple el Valor. L’expressió s’actualitza sobre la marxa, i si edites l’expressió s’actualitza el constructor.
- Marca Afegeix un camp de segons (6 camps) si el teu planificador admet segons.
- Llegeix la planificació Amb paraules (en l’idioma de la pàgina quan la biblioteca de descripcions el permet, i si no en anglès) i després consulta la llista de Properes execucions. Tria la Zona horària del servidor que executa la tasca i Quantes execucions vols veure.
- Copia l’expressió amb Copia, o fes servir un dels Altres formats.
Els errors s’expliquen camp per camp, per exemple «Minut: 61 és fora de rang (0–59)», de manera que sàpigues exactament què has de corregir.
Els cinc camps de cron
Una línia de cron estàndard (Vixie) té cinc camps, seguits de l’ordre:
| Camp | Valors permesos |
|---|---|
| Minut | 0–59 |
| Hora | 0–23 |
| Dia del mes | 1–31 |
| Mes | 1–12 o JAN–DEC |
| Dia de la setmana | 0–7 (0 i 7 són diumenge) o SUN–SAT |
Cada camp accepta * (tots els valors), una llista 1,15, un interval 9-17, un pas */15 (cada 15 unitats) o un interval amb pas 0-30/10. Així, */15 9-17 * * 1-5 vol dir cada 15 minuts de 9:00 a 17:45, de dilluns a divendres.
Hi ha una regla que sorprèn molta gent: quan tant el Dia del mes com el Dia de la setmana estan restringits, el cron clàssic s’executa quan coincideix qualsevol dels dos. 0 0 13 * 5 s’executa cada dia 13 i cada divendres, no només els divendres 13. L’eina mostra un avís en aquest cas.
Properes execucions i zones horàries
Cron fa servir el rellotge de la màquina, o el paràmetre CRON_TZ/TZ del crontab. La llista de Properes execucions es calcula per a la zona horària que triïs, incloent-hi els canvis d’horari d’estiu: durant el canvi de primavera una tasca programada a les 2:30 es pot ometre, i a la tardor es pot executar una o dues vegades segons la implementació. Per a les tasques que s’han d’executar exactament una vegada, és preferible triar hores fora de l’interval d‘1:00 a 3:00 o fer servir UTC.
Cron de Vixie, temporitzadors de systemd, Quartz i AWS
- Els temporitzadors de systemd fan servir
OnCalendar=amb una sintaxi diferent:Mon..Fri *-*-* 09..17:00/15:00. Les condicions de dia de la setmana i de data es combinen amb AND, no amb OR, de manera que algunes expressions cron no tenen equivalent exacte. - Quartz i Spring posen primer un camp de segons i hi poden afegir un camp d’any. Un dels dos camps de dia ha de ser
?, i Quartz numera els dies de la setmana de l‘1 al 7 a partir del diumenge, a diferència del 0–6 de cron. L’eina escriu els dies de la setmana amb noms (MON-FRI) per evitar aquesta trampa. - AWS EventBridge fa servir
cron(minuts hores dia mes dia-de-la-setmana any): sis camps, sense segons, un?en un dels camps de dia i un any al final.
El cron estàndard no té camp de segons. La forma de 6 camps amb segons l’admeten moltes biblioteques (node-cron, Spring, Quartz), però no el crontab del sistema.
Preguntes freqüents
Com executo una tasca cada 5 minuts?
Fes servir */5 * * * *. La tasca s’executa als minuts 0, 5, 10… de cada hora.
Com executo una tasca l'últim dia del mes?
Molts planificadors accepten L al camp de dia del mes: 0 18 L * *. Amb el cron de Vixie pur, executa-la cada dia els dies 28–31 i comprova a l’script si demà és dia 1.
Què fa @reboot?
Executa l’ordre una vegada, quan s’inicia el dimoni de cron. No té planificació, de manera que l’eina no en pot llistar les execucions.
Per què la meva tasca no s'executa a l'hora que es mostra?
Comprova la zona horària del servidor, el crontab de l’usuari en comparació amb /etc/crontab (que té un camp d’usuari addicional) i el PATH: cron s’inicia amb un entorn mínim.
El 0 o el 7 és diumenge?
Tots dos. Al camp de dia de la setmana, 0 i 7 volen dir diumenge, 1 és dilluns i 6 és dissabte.
Eines relacionades
- Convertidor de marca de temps Unix Converteix marques de temps Unix en segons o mil·lisegons a dates llegibles en hora local, UTC i ISO 8601, i torna qualsevol data a temps epoch.
- Convertidor de zones horàries Converteix una data i una hora d'una zona horària a diverses altres alhora, amb l'horari d'estiu automàtic. Cerca qualsevol zona horària IANA o ciutat.
- Calculadora de chmod Converteix els permisos de fitxers Unix entre caselles, octal (755) i notació simbòlica (rwxr-xr-x), amb setuid, setgid, sticky bit i ordres chmod a punt.