Κατανοήστε ένα χρονοδιάγραμμα cron πριν εκτελεστεί
Cron expressions είναι συμπαγείς συμβολοσειρές προγραμματισμού που χρησιμοποιούνται από servers, CI jobs, πλατφόρμες αυτοματοποίησης και scripts συντήρησης. Είναι ισχυρές, αλλά ένα μικρό τυπογραφικό λάθος μπορεί να αλλάξει μια εργασία από καθημερινή σε κάθε λεπτό, ή από εργάσιμες ημέρες σε Σαββατοκύριακα.
Αυτός ο αναλυτής εξηγεί μια Unix 5-field cron expression με απλή γλώσσα, αναλύει κάθε πεδίο και εμφανίζει τις επερχόμενες ώρες εκτέλεσης χρησιμοποιώντας τη ζώνη ώρας που επιλέγετε στο εργαλείο.
Υποστηριζόμενη διάλεκτος cron
Ο parser v1 υποστηρίζει το standard Unix cron με πέντε πεδία:
minute hour day-of-month month day-of-week - Τιμές λεπτού από
0to59. - Τιμές ώρας από
0to23. - Τιμές ημέρας του μήνα από
1to31. - Τιμές μήνα από
1to12, καθώς και ονόματα όπωςJANandDEC. - Τιμές ημέρας της εβδομάδας από
0to7, καθώς και ονόματα όπωςMONandFRI. Και τα δύο0and7σημαίνουν Κυριακή.
Υποστηρίζει wildcards, λίστες με κόμμα, εύρη και βηματικές τιμές όπως */15 or 9-17/2.
Τι δεν υποστηρίζεται σκόπιμα
Οι διάλεκτοι cron δεν είναι καθολικές. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions και πλατφόρμες φιλοξενίας μπορούν να προσθέσουν δικά τους πεδία ή ειδικούς τελεστές.
- Τα πεδία seconds και year δεν αναλύονται ως Unix cron.
- Τελεστές του Quartz όπως
?,L,W, και#αναφέρονται ως μη υποστηριζόμενοι. - Μακροεντολές όπως
@dailyand@rebootδεν επεκτείνονται. - Το κείμενο της εντολής μετά από ένα χρονοδιάγραμμα δεν θεωρείται μέρος της έκφρασης.
Χρησιμοποιήστε αυτή τη σελίδα ως επιθεωρητή για χρονοδιαγράμματα τύπου Unix. Πριν αλλάξετε αυτοματισμούς παραγωγής, επιβεβαιώστε τον ακριβή scheduler που θα εκτελέσει τη δουλειά.
Συμπεριφορά ζώνης ώρας και θερινής ώρας
Μια cron expression δεν περιλαμβάνει από μόνη της ζώνη ώρας. Η ίδια έκφραση μπορεί να εκτελεστεί σε διαφορετικές στιγμές ανάλογα με το αν ο server χρησιμοποιεί UTC, τοπική ζώνη ώρας συστήματος ή ρύθμιση ζώνης ώρας ειδική για τον scheduler.
- Η προεπισκόπηση δείχνει χρόνους εκτέλεσης στην επιλεγμένη ζώνη ώρας IANA και σε UTC.
- Οι μεταβάσεις προς τα εμπρός της άνοιξης μπορούν να παραλείψουν τοπικές ώρες στο ρολόι που δεν υπάρχουν.
- Οι μεταβάσεις επαναφοράς μπορούν να επαναλάβουν μια τοπική ώρα στο ρολόι· η συμπεριφορά του scheduler μπορεί να διαφέρει.
- Εάν και τα δύο πεδία day-of-month και day-of-week περιορίζονται, το Unix cron συνήθως χρησιμοποιεί λογική OR.
Για κρίσιμες εργασίες, θεωρήστε την προεπισκόπηση ως βοήθημα σχεδιασμού και επιβεβαιώστε τη συμπεριφορά στον ίδιο τον scheduler.
Συχνές Ερωτήσεις
Υποστηρίζει αυτό το Quartz cron;
Όχι. Ο parser υποστηρίζει μόνο Unix 5-field cron. Πεδία seconds και year του τύπου Quartz, και τελεστές όπως ?, L, W, και # εμφανίζονται ως μη υποστηριζόμενοι.
Ποια ζώνη ώρας χρησιμοποιεί μια cron έκφραση;
Οι cron εκφράσεις δεν φέρουν πληροφορία ζώνης ώρας. Η προεπισκόπηση χρησιμοποιεί τη ζώνη ώρας που επιλέχθηκε στο εργαλείο, αλλά ο server ή ο scheduler σας μπορεί να χρησιμοποιεί διαφορετική ζώνη ώρας.
Γιατί μπορούν να ταιριάξουν και το day-of-month και το day-of-week;
Στη συνήθη συμπεριφορά του Unix cron, όταν και τα δύο πεδία περιορίζονται, μια ημερομηνία μπορεί να ταιριάξει αν ταιριάξει οποιοδήποτε από τα πεδία. Για παράδειγμα, 0 0 1 * MON μπορεί να εκτελεστεί την πρώτη ημέρα του μήνα και τις Δευτέρες.
Μπορώ να επικολλήσω το μέρος της εντολής από το crontab;
Επικολλήστε μόνο τα πέντε πεδία του χρονοδιαγράμματος. Το εργαλείο είναι ένας parser χρονοδιαγραμμάτων, όχι πλήρης parser crontab, οπότε το κείμενο της εντολής μετά το χρονοδιάγραμμα δεν ερμηνεύεται.