Οι εκφράσεις cron μοιάζουν με τυχαίους αριθμούς και αστερίσκους, αλλά ελέγχουν πότε εκτελούνται εκατομμύρια προγραμματισμένες εργασίες σε όλο το διαδίκτυο. Είτε ρυθμίζετε σενάριο δημιουργίας αντιγράφων ασφαλείας, προγραμματίζετε αναφορές email ή διαμορφώνετε pipeline CI/CD, η κατανόηση του cron είναι απαραίτητη. Αυτό το σεμινάριο το κάνει εύκολο χρησιμοποιώντας τον δωρεάν Cron Parser μας.
Τι χρειάζεστε
- Μια έκφραση cron για αποκωδικοποίηση, ή ένα πρόγραμμα που θέλετε να εκφράσετε ως cron
- Ένα πρόγραμμα περιήγησης (Chrome, Firefox, Safari ή Edge)
- Δεν απαιτείται λογαριασμός ή εγκατάσταση
Οδηγός βήμα προς βήμα
Εισάγετε έκφραση cron
Ανοίξτε το εργαλείο Cron Parser. Πληκτρολογήστε ή επικολλήστε έκφραση cron στο πεδίο εισαγωγής. Για παράδειγμα, δοκιμάστε 0 9 * * 1. Το εργαλείο την αναλύει αμέσως και σας δείχνει τι σημαίνει σε κατανοητό κείμενο.
Διαβάστε το φιλικό αποτέλεσμα
Ο parser μεταφράζει την έκφραση σε σαφή περιγραφή. Για 0 9 * * 1, θα δείτε κάτι σαν "Στις 09:00 κάθε Δευτέρα". Το εργαλείο εμφανίζει επίσης τις επόμενες προγραμματισμένες ώρες εκτέλεσης ώστε να επαληθεύσετε ότι το πρόγραμμα κάνει αυτό που περιμένετε.
Ρυθμίστε και πειραματιστείτε
Τροποποιήστε την έκφραση και παρακολουθήστε την περιγραφή να ενημερώνεται σε πραγματικό χρόνο. Αλλάξτε έναν αριθμό, αντικαταστήστε έναν αστερίσκο με τιμή ή προσθέστε εύρος. Αυτός ο βρόχος άμεσης ανατροφοδότησης είναι ο γρηγορότερος τρόπος να μάθετε σύνταξη cron και να δημιουργήσετε το ακριβές πρόγραμμα που χρειάζεστε.
Καλό να ξέρετε Οι εκφράσεις cron έχουν συνήθως πέντε πεδία: λεπτό, ώρα, ημέρα μήνα, μήνας και ημέρα εβδομάδας. Ορισμένα συστήματα προσθέτουν έκτο πεδίο για δευτερόλεπτα, αλλά τα πέντε πεδία είναι το πρότυπο.
Κατανόηση των πέντε πεδίων
Μια έκφραση cron αποτελείται από πέντε πεδία χωρισμένα με κενά:
┌───────────── λεπτό (0-59)
│ ┌───────────── ώρα (0-23)
│ │ ┌───────────── ημέρα μήνα (1-31)
│ │ │ ┌───────────── μήνας (1-12)
│ │ │ │ ┌───────────── ημέρα εβδομάδας (0-7, όπου 0 και 7 είναι Κυριακή)
│ │ │ │ │
* * * * *
Ένας αστερίσκος * σημαίνει "κάθε". Ένας αριθμός σημαίνει "ακριβώς αυτή η τιμή". Αυτό είναι το θεμέλιο — τα πάντα άλλα βασίζονται σε αυτό.
Συνηθισμένα μοτίβα cron
Ορίστε τα μοτίβα που θα χρησιμοποιείτε πιο συχνά. Πληκτρολογήστε οποιοδήποτε από αυτά στον Cron Parser για να τα δείτε εξηγημένα και επαληθευμένα:
| Έκφραση | Σημασία |
|---|---|
* * * * * |
Κάθε λεπτό |
0 * * * * |
Κάθε ώρα (στο λεπτό 0) |
0 9 * * * |
Κάθε μέρα στις 9:00 πμ |
0 9 * * 1 |
Κάθε Δευτέρα στις 9:00 πμ |
0 9 * * 1-5 |
Καθημερινές στις 9:00 πμ |
0 0 1 * * |
Πρώτη μέρα κάθε μήνα τα μεσάνυχτα |
0 */6 * * * |
Κάθε 6 ώρες |
30 8 * * 1,3,5 |
Δευτέρα, Τετάρτη, Παρασκευή στις 8:30 πμ |
0 0 * * 0 |
Κάθε Κυριακή τα μεσάνυχτα |
*/15 * * * * |
Κάθε 15 λεπτά |
Συμβουλή Η σύνταξη βήματος */n σημαίνει "κάθε n διαστήματα". Έτσι το */15 στο πεδίο λεπτού σημαίνει κάθε 15 λεπτά (στα 0, 15, 30 και 45 λεπτά κάθε ώρα). Η σύνταξη εύρους 1-5 στο πεδίο ημέρας εβδομάδας σημαίνει Δευτέρα έως Παρασκευή.
Εξήγηση ειδικών χαρακτήρων
| Χαρακτήρας | Σημασία | Παράδειγμα |
|---|---|---|
* |
Κάθε τιμή | * * * * * = κάθε λεπτό |
, |
Πολλαπλές τιμές | 0 9,17 * * * = στις 9 πμ και 5 μμ |
- |
Εύρος τιμών | 0 9 * * 1-5 = καθημερινές |
/ |
Διάστημα βήματος | */10 * * * * = κάθε 10 λεπτά |
Δημιουργία δικών σας εκφράσεων
Για να δημιουργήσετε έκφραση cron από μηδέν, σκεφτείτε το πρόγραμμά σας ως απαντήσεις σε πέντε ερωτήσεις:
- Σε ποιο λεπτό; (0-59, ή
*για κάθε λεπτό) - Σε ποια ώρα; (0-23, ή
*για κάθε ώρα) - Ποια ημέρα του μήνα; (1-31, ή
*για κάθε μέρα) - Σε ποιον μήνα; (1-12, ή
*για κάθε μήνα) - Ποια ημέρα της εβδομάδας; (0-7, ή
*για κάθε μέρα)
Για παράδειγμα, "Κάθε Τρίτη και Πέμπτη στις 2:30 μμ" γίνεται: λεπτό=30, ώρα=14, ημέρα=, μήνας=, εβδομάδα=2,4, δίνοντας 30 14 * * 2,4.
Σημαντικό Το Cron χρησιμοποιεί 24ωρη ώρα. Οι 9 πμ είναι 9, αλλά οι 9 μμ είναι 21. Σημειώστε επίσης ότι οι ζώνες ώρας εξαρτώνται από τον διακομιστή που εκτελεί την εργασία cron, όχι από την τοπική σας ώρα. Να επιβεβαιώνετε πάντα ποια ζώνη ώρας χρησιμοποιεί το σύστημά σας.
Συχνές ερωτήσεις
Τι συμβαίνει αν ορίσω και ημέρα μήνα και ημέρα εβδομάδας; Στο τυπικό cron, η εργασία εκτελείται όταν ισχύει οποιαδήποτε συνθήκη (είναι OR, όχι AND). Αυτό εκπλήσσει πολλούς. Αν χρειάζεστε και τις δύο συνθήκες, χρησιμοποιήστε wrapper script που ελέγχει την ημερομηνία.
Μπορώ να προγραμματίσω κάτι να εκτελείται κάθε 2 ώρες;
Ναι. Χρησιμοποιήστε 0 */2 * * * που εκτελείται στο λεπτό 0 κάθε δεύτερης ώρας.
Ποια είναι η διαφορά μεταξύ cron 5 πεδίων και 6 πεδίων; Ορισμένα συστήματα (όπως Spring, Quartz) προσθέτουν πεδίο δευτερολέπτων στην αρχή. Το τυπικό Unix cron χρησιμοποιεί πέντε πεδία. Ο Cron Parser υποστηρίζει και τις δύο μορφές.
Επόμενα βήματα
Τώρα που μπορείτε να διαβάζετε και να γράφετε εκφράσεις cron, δοκιμάστε να δημιουργήσετε προγράμματα για τα έργα σας. Αν εργάζεστε με άλλα εργαλεία προγραμματιστών, ελέγξτε τον Regex Tester για αντιστοίχιση μοτίβων ή τον JSON Formatter για εργασία με αρχεία ρυθμίσεων.