tigtools

Επεξήγηση εκφράσεων cron

Εισαγάγετε ένα πρόγραμμα cron 5 πεδίων για να δείτε τι σημαίνει και πότε θα εκτελεστεί στη συνέχεια. Όλα υπολογίζονται στο πρόγραμμα περιήγησής σας.

Εκτελείται στον περιηγητή σας Χωρίς εγγραφή

Πέντε πεδία: λεπτό, ώρα, ημέρα του μήνα, μήνας, ημέρα της εβδομάδας. Λειτουργούν και μακροεντολές όπως @daily.

Συνηθισμένα χρονοδιαγράμματα

Σημασία

Κάθε 15 λεπτά, μεταξύ 09:00 και 17:59, την Δευτέρα έως Παρασκευή.

Πεδία

Λεπτό
*/15
Ώρα
9-17
Ημέρα του μήνα
*
Μήνας
*
Ημέρα της εβδομάδας
1-5
Ζώνη ώρας

Επόμενες 10 εκτελέσεις

    Πώς να το χρησιμοποιήσετε

    1. Πληκτρολογήστε ή επικολλήστε μια έκφραση cron ή επιλέξτε ένα από τα κοινά προγράμματα.
    2. Διαβάστε τη σημασία σε απλή γλώσσα. Τα μη έγκυρα πεδία αναφέρονται μαζί με τον λόγο.
    3. Ελέγξτε τις επόμενες 10 ώρες εκτέλεσης, που εμφανίζονται στην τοπική σας ζώνη ώρας. Μεταβείτε σε UTC αν ο διακομιστής σας εκτελείται σε UTC.
    4. Αντιγράψτε τις ώρες εκτέλεσης για να τις μοιραστείτε ή προσαρμόστε την έκφραση μέχρι το πρόγραμμα να είναι αυτό που χρειάζεστε.

    Πώς λειτουργεί

    Μια τυπική έκφραση cron, όπως χρησιμοποιείται από το crontab στο Linux (Vixie cron και cronie) και από πολλούς χρονοπρογραμματιστές σε συστήματα CI και φιλοξενίας, αποτελείται από πέντε πεδία που χωρίζονται με κενά: λεπτό (0–59), ώρα (0–23), ημέρα του μήνα (1–31), μήνας (1–12 ή JAN–DEC) και ημέρα της εβδομάδας (0–7 ή SUN–SAT, όπου 0 και 7 σημαίνουν Κυριακή). Κάθε πεδίο δέχεται * για όλες τις τιμές, μία μεμονωμένη τιμή, ένα εύρος όπως 1-5, μία λίστα όπως 1,15,30 και ένα βήμα όπως */15 (κάθε 15η τιμή) ή 9-17/2 (κάθε δεύτερη ώρα από 9 έως 17). Τα ονόματα δεν κάνουν διάκριση πεζών/κεφαλαίων. Οι συντομεύσεις @yearly (ή @annually), @monthly, @weekly, @daily (ή @midnight) και @hourly αντιστοιχούν σε 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * και 0 * * * *.

    Τα πεδία ημέρας του μήνα και ημέρας της εβδομάδας ακολουθούν έναν κανόνα που ξαφνιάζει πολλούς. Αν κάποιο από τα δύο πεδία αρχίζει με *, η ημέρα πρέπει να ικανοποιεί και τα δύο πεδία. Αν και τα δύο πεδία είναι περιορισμένα, η ημέρα ταιριάζει όταν ικανοποιείται οποιοδήποτε από τα δύο: 0 0 13 * 5 εκτελείται στις 13 κάθε μήνα και επίσης κάθε Παρασκευή, όχι μόνο όταν είναι Παρασκευή και 13. Επειδή ο έλεγχος αφορά το αν το πεδίο αρχίζει με *, ένα βήμα όπως */2 θεωρείται επίσης μη περιορισμένο. Αυτό συμφωνεί με το Vixie cron και το cronie· ορισμένοι άλλοι χρονοπρογραμματιστές συμπεριφέρονται διαφορετικά.

    Οι επόμενοι χρόνοι εκτέλεσης υπολογίζονται στη ζώνη ώρας του προγράμματος περιήγησής σας ή σε UTC, την οποία χρησιμοποιούν οι περισσότεροι διακομιστές και χρονοπρογραμματιστές cloud. Το ίδιο το cron χρησιμοποιεί τη ζώνη ώρας του μηχανήματος στο οποίο εκτελείται. Κατά τις αλλαγές θερινής ώρας οι πραγματικοί δαίμονες cron διαφέρουν· αυτό το εργαλείο παραλείπει τοπικές ώρες που δεν υπάρχουν όταν τα ρολόγια πάνε μπροστά και εμφανίζει μία φορά μια ώρα που επαναλαμβάνεται. Δεν υποστηρίζονται εκτεταμένες συντάξεις: εκφράσεις Quartz έξι ή επτά πεδίων με δευτερόλεπτα ή έτη, και οι ειδικοί χαρακτήρες ?, L, W και #.

    Παραδείγματα

    Έλεγχος υγείας σε ώρες γραφείου

    */15 9-17 * * 1-5 σημαίνει κάθε 15 λεπτά μεταξύ 09:00 και 17:59, από Δευτέρα έως Παρασκευή. Η τελευταία εκτέλεση κάθε ημέρας γίνεται στις 17:45.

    Νυχτερινό αντίγραφο ασφαλείας

    30 2 * * * εκτελείται στις 02:30 κάθε ημέρα. Αν ο διακομιστής χρησιμοποιεί UTC και βρίσκεστε στη Νέα Υόρκη, η λίστα επόμενων εκτελέσεων σε λειτουργία UTC δείχνει τις ώρες που θα χρησιμοποιήσει πραγματικά ο διακομιστής.

    Η παγίδα του πεδίου ημέρας

    Το 0 9 1 * 1 μοιάζει με «9:00 την πρώτη ημέρα του μήνα αν είναι Δευτέρα», αλλά εκτελείται στις 09:00 την 1η κάθε μήνα και επίσης κάθε Δευτέρα. Για να εκτελείται μόνο την πρώτη Δευτέρα, προγραμματίστε 0 9 1-7 * * και ελέγξτε την ημέρα της εβδομάδας μέσα στο script.

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

    Τι σημαίνει */5 στο cron;

    Σημαίνει κάθε πέμπτη τιμή του πεδίου, ξεκινώντας από τη χαμηλότερη τιμή. Στο πεδίο των λεπτών, το */5 εκτελείται στα λεπτά 0, 5, 10 … 55. Στο πεδίο των ωρών, το */5 εκτελείται στις 0, 5, 10, 15 και 20, οπότε το κενό από τις 20:00 έως τα μεσάνυχτα είναι τέσσερις ώρες, όχι πέντε.

    Γιατί η εργασία μου εκτελείται περισσότερες ημέρες από ό,τι περίμενα;

    Όταν τόσο το πεδίο ημέρας του μήνα όσο και το πεδίο ημέρας της εβδομάδας έχουν περιορισμούς, το cron εκτελείται τις ημέρες που αντιστοιχούν σε οποιοδήποτε από τα δύο. Για παράδειγμα, το 0 0 15 * 1 εκτελείται στις 15 του μήνα και κάθε Δευτέρα. Ορίστε το ένα από τα δύο πεδία σε * για να απαιτείται μόνο το άλλο.

    Ποια ζώνη ώρας χρησιμοποιεί το cron;

    Η ζώνη ώρας συστήματος του διακομιστή που εκτελεί τον δαίμονα cron, εκτός αν το crontab ορίζει CRON_TZ ή TZ (υποστηρίζεται από το cronie). Οι χρονοπρογραμματιστές cloud συχνά χρησιμοποιούν UTC από προεπιλογή. Χρησιμοποιήστε τον διακόπτη UTC για να δείτε τις ώρες που θα χρησιμοποιούσε ένας διακομιστής UTC.

    Μπορώ να χρησιμοποιήσω δευτερόλεπτα ή πεδίο έτους;

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

    Είναι το 0 ή το 7 Κυριακή;

    Και τα δύο. Στο πεδίο ημέρας της εβδομάδας, το 0 και το 7 σημαίνουν Κυριακή, το 1 είναι Δευτέρα και το 6 είναι Σάββατο. Μπορείτε επίσης να γράψετε τα ονόματα τριών γραμμάτων SUN έως SAT.

    Απόρρητο

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