Αναλυτής εκφράσεων Cron

Αναλύστε τις εκφράσεις cron και δείτε μια κατανοητή από τον άνθρωπο εξήγηση για το πότε εκτελούνται. Ιδανικό για προγραμματιστές και διαχειριστές συστημάτων που πρέπει να δημιουργήσουν ή να κατανοήσουν χρονοδιαγράμματα εργασιών cron. Αποφύγετε λάθη στον προγραμματισμό, απεικονίζοντας ακριβώς πότε θα εκτελεστούν οι εκφράσεις cron.

Συχνές ερωτήσεις

Μια έκφραση cron είναι μια συμβολοσειρά 5 ή 6 πεδίων που ορίζει ένα χρονοδιάγραμμα για αυτοματοποιημένες εργασίες σε συστήματα τύπου Unix. Τα πεδία αντιπροσωπεύουν: λεπτό (0-59), ώρα (0-23), ημέρα του μήνα (1-31), μήνα (1-12) και ημέρα της εβδομάδας (0-7, όπου 0 και 7 είναι η Κυριακή). Για παράδειγμα, "0 9 * * * 1" σημαίνει "τρέχει στις 9:00 π.μ. κάθε Δευτέρα".

Ξεκινήστε με πέντε αστερίσκους (* * * * * * * *) που αντιπροσωπεύουν λεπτό, ώρα, ημέρα, μήνα, ημέρα της εβδομάδας. Αντικαταστήστε τους αστερίσκους με συγκεκριμένες τιμές ή περιοχές. Για παράδειγμα: '30 14 * * * *' εκτελείται στις 14:30 καθημερινά, '0 0 1 * * *' εκτελείται τα μεσάνυχτα της 1ης κάθε μήνα, '*/15 * * * * * *' εκτελείται κάθε 15 λεπτά. Χρησιμοποιήστε τον αναλυτή μας για να επαληθεύσετε ότι η έκφρασή σας κάνει αυτό που περιμένετε.

Ένας αστερίσκος σημαίνει "κάθε" ή "οποιαδήποτε" για τη συγκεκριμένη χρονική μονάδα. Για παράδειγμα, * στο πεδίο ώρα σημαίνει κάθε ώρα, * στο πεδίο ημέρα σημαίνει κάθε ημέρα. Έτσι, "0 * * * * *" σημαίνει "στο λεπτό 0 κάθε ώρας" (ωριαία), ενώ "* * * * * * *" σημαίνει "κάθε λεπτό". Είναι ο μπαλαντέρ που ταιριάζει με όλες τις πιθανές τιμές για το συγκεκριμένο πεδίο.

Χρησιμοποιήστε τη σύνταξη τιμής βήματος: */N. Για κάθε 5 λεπτά: '*/5 * * * *'. Για κάθε 3 ώρες: '0 */3 * * *'. Η σύνταξη */N σημαίνει "κάθε Ν-οστή τιμή" - έτσι */5 στο πεδίο λεπτών σημαίνει λεπτά 0, 5, 10, 15, κ.λπ. Μπορείτε επίσης να χρησιμοποιήσετε περιοχές με βήματα όπως '0-30/5' για κάθε 5 λεπτά κατά τη διάρκεια της πρώτης μισής ώρας.

Ναι! Χρησιμοποιήστε το 1-5 στο πεδίο ημέρα της εβδομάδας (το 5ο πεδίο). Για παράδειγμα, το "0 9 * * * 1-5" εκτελείται στις 9 π.μ. από Δευτέρα έως Παρασκευή. Η Δευτέρα είναι το 1 και η Παρασκευή το 5. Μπορείτε επίσης να αναφέρετε συγκεκριμένες ημέρες: '0 9 * * * 1,3,5' τρέχει στις 9 π.μ. μόνο τη Δευτέρα, την Τετάρτη και την Παρασκευή.

Αυτοί είναι δύο διαφορετικοί τρόποι για να καθορίσετε ποιες ημέρες εκτελείται μια εργασία. Η ημέρα του μήνα (3ο πεδίο) χρησιμοποιεί τις ημερομηνίες 1-31, ενώ η ημέρα της εβδομάδας (5ο πεδίο) χρησιμοποιεί τις ημερομηνίες 0-7 (0 και 7 είναι η Κυριακή). Εάν καθοριστούν και οι δύο (όχι *), η εργασία εκτελείται όταν ταιριάζει ΟΠΟΙΑΔΗΠΟΤΕ συνθήκη. Για παράδειγμα, το '0 0 1 * 1' εκτελείται τα μεσάνυχτα της 1ης κάθε μήνα ΚΑΙ κάθε Δευτέρα.

Για τις καθημερινές από τις 9 π.μ. έως τις 5 μ.μ.: "0 9-17 * * * 1-5" τρέχει στην αρχή κάθε ώρας. Για κάθε 30 λεπτά κατά τις εργάσιμες ώρες: '*/30 9-17 * * 1-5'. Το εύρος ωρών 9-17 καλύπτει τις ώρες 9 π.μ. έως 5 μ.μ. και το 1-5 περιορίζει την εκτέλεση σε Δευτέρα έως Παρασκευή.

Είναι ισοδύναμες - και οι δύο λειτουργούν καθημερινά τα μεσάνυχτα. Πολλές υλοποιήσεις cron υποστηρίζουν ειδικές συμβολοσειρές όπως @daily, @hourly, @weekly, @monthly και @yearly ως συντομεύσεις. Αυτές είναι πιο ευανάγνωστες αλλά λιγότερο ευέλικτες από τις πλήρεις εκφράσεις. Χρησιμοποιήστε συντομεύσεις για κοινά διαστήματα και πλήρεις εκφράσεις για προσαρμοσμένα χρονοδιαγράμματα.

Οι τυπικές εκφράσεις cron εκτελούνται με βάση την ώρα συστήματος του διακομιστή. Για να χειριστείτε τις ζώνες ώρας, είτε ρυθμίστε σωστά τη ζώνη ώρας του διακομιστή σας είτε υπολογίστε τη διαφορά ώρας. Ορισμένες προηγμένες υλοποιήσεις cron υποστηρίζουν προδιαγραφές για τη ζώνη ώρας, αλλά η βασική μορφή 5 πεδίων δεν περιλαμβάνει πληροφορίες για τη ζώνη ώρας.

Χρησιμοποιήστε τον Αναλυτή εκφράσεων Cron για να επαληθεύσετε ότι η έκφρασή σας εμφανίζει την αναμενόμενη περιγραφή του προγράμματος. Ο αναλυτής εξηγεί σε απλά αγγλικά πότε θα εκτελεστεί η εργασία σας, βοηθώντας σας να εντοπίσετε σφάλματα όπως '0 9 31 2 *' (η 31η Φεβρουαρίου δεν υπάρχει) πριν την ανάπτυξη στην παραγωγή.