Embedded Linux Conference 2013 - Task Scheduling for Multicore Embedded Devices
Πίνακας περιεχομένων:
- Τι είναι το αρχείο Crontab
- Σύνταξη Crontab και χειριστές
- Αρχεία Crontab σε όλο το σύστημα
- Προκαθορισμένες μακροεντολές
- Η εντολή Crontab του Linux
- Μεταβλητές Crontab
- Περιορισμοί Crontab
- Παραδείγματα εργασίας Cron
- συμπέρασμα
Το Cron είναι ένας δαίμονας προγραμματισμού που εκτελεί εργασίες σε καθορισμένα χρονικά διαστήματα. Αυτές οι εργασίες ονομάζονται εργασίες cron και χρησιμοποιούνται ως επί το πλείστον για την αυτοματοποίηση της συντήρησης ή της διαχείρισης του συστήματος.
Για παράδειγμα, μπορείτε να ορίσετε μια εργασία cron για να αυτοματοποιήσετε επαναλαμβανόμενες εργασίες, όπως δημιουργία αντιγράφων ασφαλείας δεδομένων ή βάσεων δεδομένων, ενημέρωση του συστήματος με τις πιο πρόσφατες ενημερωμένες εκδόσεις ασφαλείας, έλεγχο της χρήσης του χώρου στο δίσκο, αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου κ.ο.κ. Ορισμένες εφαρμογές, όπως το Drupal ή το Magento, απαιτούν εργασίες cron για την εκτέλεση συγκεκριμένων εργασιών.
Οι εργασίες cron μπορούν να προγραμματιστούν για ένα λεπτό, ώρα, ημέρα του μήνα, μήνα, ημέρα της εβδομάδας ή οποιοδήποτε συνδυασμό αυτών.
Τι είναι το αρχείο Crontab
Το Crontab (πίνακας cron) είναι ένα αρχείο κειμένου που καθορίζει το χρονοδιάγραμμα των εργασιών cron. Υπάρχουν δύο τύποι αρχείων crontab. Τα αρχεία crontab σε όλο το σύστημα και τα μεμονωμένα αρχεία crontab χρηστών.
Τα αρχεία crontab των χρηστών αποθηκεύονται από το όνομα του χρήστη και η θέση τους ποικίλλει ανάλογα με τα λειτουργικά συστήματα. Στο σύστημα που βασίζεται στο Red Hat, όπως το CentOS, τα αρχεία crontab αποθηκεύονται στον κατάλογο
/var/spool/cron
ενώ τα αρχεία του Debian και του Ubuntu αποθηκεύονται στον κατάλογο
/var/spool/cron/crontabs
.
Παρόλο που μπορείτε να επεξεργαστείτε τα αρχεία crontab του χρήστη με μη αυτόματο τρόπο, συνιστάται να χρησιμοποιήσετε την εντολή
crontab
.
/etc/crontab
και τα αρχεία μέσα στον κατάλογο
/etc/cron.d
είναι αρχεία crontab σε όλο το σύστημα που μπορούν να επεξεργαστούν μόνο από τους διαχειριστές του συστήματος.
Στις περισσότερες διανομές Linux μπορείτε επίσης να βάλετε σενάρια μέσα στους
/etc/cron.{hourly, daily, weekly, monthly}
καταλόγους και τα scripts θα εκτελούνται κάθε
hour/day/week/month
.
Σύνταξη Crontab και χειριστές
Κάθε γραμμή στο αρχείο crontab του χρήστη περιέχει έξι πεδία που χωρίζονται από ένα κενό που ακολουθείται από την εντολή που πρόκειται να εκτελεστεί.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Τα πρώτα πέντε πεδία μπορεί να περιέχουν μία ή περισσότερες τιμές, χωρισμένες με κόμμα ή με ένα εύρος τιμών που χωρίζονται με παύλα.
-
*-Ο χειριστής με αστερίσκο νοείται οποιαδήποτε τιμή ή πάντα. Εάν έχετε το σύμβολο αστερίσκου στο πεδίο Hour, σημαίνει ότι η εργασία θα εκτελείται κάθε ώρα.,-Ο χειριστής με κόμμα σας επιτρέπει να καθορίσετε μια λίστα τιμών για επανάληψη. Για παράδειγμα, αν έχετε1, 3, 5στο πεδίο Ωράριο, η εργασία θα τρέξει στις 1 π.μ., 3 π.μ. και 5 π.μ.--Ο τελεστής παύλας σας επιτρέπει να ορίσετε μια σειρά τιμών. Αν έχετε1-5στο πεδίο Ημέρα της εβδομάδας, η εργασία θα τρέξει κάθε βδομάδα (Από Δευτέρα έως Παρασκευή)./-Ο τελεστής κάθετης σάς επιτρέπει να καθορίσετε τιμές που θα επαναλαμβάνονται σε ένα συγκεκριμένο διάστημα μεταξύ τους. Για παράδειγμα, εάν έχετε*/4στο πεδίο Hour, σημαίνει ότι η ενέργεια θα πραγματοποιηθεί κάθε τέσσερις ώρες. Είναι ίδιο με τον προσδιορισμό των0, 4, 8, 12, 16, 20. Αντί του αστερίσκου πριν από τον τελεστή κάθετο, μπορείτε επίσης να χρησιμοποιήσετε ένα εύρος τιμών,1-30/10σημαίνει το ίδιο με1, 11, 21.
Αρχεία Crontab σε όλο το σύστημα
Η σύνταξη των αρχείων crontab σε όλο το σύστημα είναι ελαφρώς διαφορετική από τα crontabs του χρήστη. Περιέχει ένα επιπλέον υποχρεωτικό πεδίο χρήστη που καθορίζει ποιος χρήστης θα εκτελέσει την εργασία cron.
Υπάρχουν πολλές ειδικές μακροεντολές προγράμματος Cron που χρησιμοποιούνται για τον καθορισμό κοινών διαστημάτων. Μπορείτε να χρησιμοποιήσετε αυτές τις συντομεύσεις στη θέση της προδιαγραφής ημερομηνίας πέντε στηλών. Η εντολή crontab σάς επιτρέπει να εγκαταστήσετε ή να ανοίξετε ένα αρχείο crontab για επεξεργασία. Μπορείτε να χρησιμοποιήσετε την εντολή crontab για να προβάλετε, να προσθέσετε, να καταργήσετε ή να τροποποιήσετε τις εργασίες cron χρησιμοποιώντας τις ακόλουθες επιλογές: Η εντολή crontab ανοίγει το αρχείο crontab χρησιμοποιώντας το πρόγραμμα επεξεργασίας που καθορίζεται από τις μεταβλητές περιβάλλοντος
Ο δαίμονας cron ορίζει αυτόματα πολλές μεταβλητές περιβάλλοντος. Οι διαχειριστές συστημάτων μπορούν να ελέγξουν ποιοι χρήστες έχουν πρόσβαση στην εντολή
Από προεπιλογή, μόνο το αρχείο
Εάν το αρχείο
Εάν δεν υπάρχει κανένα αρχείο, μόνο οι χρήστες με δικαιώματα διαχειριστή μπορούν να χρησιμοποιήσουν την εντολή
Παρακάτω υπάρχουν μερικά παραδείγματα θέσεων εργασίας cron, τα οποία θα σας δείξουν πώς μπορείτε να προγραμματίσετε μια εργασία που θα εκτελεστεί σε διαφορετικές χρονικές περιόδους. Εκτελέστε εντολή στις 15:00 κάθε μέρα από Δευτέρα έως Παρασκευή: Εκτελέστε μια δέσμη ενεργειών κάθε 5 λεπτά και ανακατευθύνετε την τυπική έξοδο σε
Εκτελέστε δύο εντολές κάθε Δευτέρα στις 3 μ.μ. (χρησιμοποιήστε τον χειριστή
Εκτελέστε μια δέσμη ενεργειών PHP κάθε 2 λεπτά και γράψτε την έξοδο σε ένα αρχείο: Εκτελέστε σενάριο κάθε μέρα, κάθε ώρα, την ώρα, από τις 8 π.μ. έως τις 4 μ.μ.: Εκτελέστε μια δέσμη ενεργειών την πρώτη Δευτέρα κάθε μήνα, στις 7 π.μ. Εκτελέστε το σενάριο στις 9:15 μ.μ., την 1η και 15η κάθε μήνα: Ορίστε προσαρμοσμένες
Έχετε μάθει πώς να δημιουργείτε εργασίες cron και να προγραμματίζετε εργασίες σε συγκεκριμένη ημερομηνία και ώρα. Μη διστάσετε να αφήσετε ένα σχόλιο εάν έχετε οποιεσδήποτε ερωτήσεις.
* * * * * command(s)
* * * * * command(s)
Προκαθορισμένες μακροεντολές
@yearly
(ή
@annually
) - Εκτελέστε την καθορισμένη εργασία μία φορά το χρόνο τα μεσάνυχτα (12:00 π.μ.) της 1ης Ιανουαρίου. Ισοδύναμο με το
0 0 1 1 *
.
@monthly
- Εκτελέστε την καθορισμένη εργασία μία φορά το μήνα τα μεσάνυχτα την πρώτη ημέρα του μήνα. Ισοδύναμο με
0 0 1 * *
.
@weekly
- Εκτελέστε την καθορισμένη εργασία μία φορά την εβδομάδα τα μεσάνυχτα της Κυριακής. Αντιστοιχεί στο
0 0 * * 0
.
@daily
- Εκτελέστε την καθορισμένη εργασία μία φορά την ημέρα τα μεσάνυχτα. Ισοδύναμο με
0 0 * * *
.
@hourly
- Εκτελέστε την καθορισμένη εργασία μία φορά την ώρα στην αρχή της ώρας. Ισοδύναμο με
0 * * * *
.
@reboot
- Εκτελέστε την καθορισμένη εργασία κατά την εκκίνηση του συστήματος (ώρα εκκίνησης).Η εντολή Crontab του Linux
crontab -e
- Επεξεργαστείτε το αρχείο crontab ή δημιουργήστε ένα, αν δεν υπάρχει ήδη.
crontab -l
- Εμφάνιση περιεχομένων αρχείου crontab.
crontab -r
- Αφαιρέστε το τρέχον αρχείο crontab.
crontab -i
- Καταργήστε το τρέχον αρχείο crontab με μια προτροπή πριν την κατάργηση.
crontab -u
VISUAL
ή
EDITOR
.
Μεταβλητές Crontab
PATH=/usr/bin:/bin
. Εάν η εντολή που καλείτε υπάρχει στην καθορισμένη διαδρομή cron, μπορείτε είτε να χρησιμοποιήσετε την απόλυτη διαδρομή στην εντολή είτε να αλλάξετε τη μεταβλητή cron
$PATH
. Δεν μπορείτε να προσθέσετε σιωπηρά
:$PATH
όπως θα κάνατε με ένα κανονικό script.The προεπιλεγμένο κέλυφος έχει οριστεί σε
/bin/sh
. Μπορείτε να ορίσετε ένα διαφορετικό κέλυφος, αλλάζοντας το
SHELL
variable.Cron επικαλείται την εντολή από τον αρχικό κατάλογο του χρήστη. Η μεταβλητή
HOME
μπορεί να αντικατασταθεί από τις ρυθμίσεις στο crontab. Η ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου αποστέλλεται στον κάτοχο του crontab. Για να αντικαταστήσετε την προεπιλεγμένη συμπεριφορά, μπορείτε να χρησιμοποιήσετε τη μεταβλητή περιβάλλοντος
MAILTO
με μια λίστα (διαχωρισμένη με κόμμα) όλων των διευθύνσεων ηλεκτρονικού ταχυδρομείου που θέλετε να λάβετε οι ειδοποιήσεις ηλεκτρονικού ταχυδρομείου. Αν το
MAILTO
είναι καθορισμένο αλλά κενό (
MAILTO=""
), δεν αποστέλλεται μήνυμα ηλεκτρονικού ταχυδρομείου.Περιορισμοί Crontab
crontab
χρησιμοποιώντας τα αρχεία
/etc/cron.deny
και
/etc/cron.allow
. Τα αρχεία αποτελούνται από μια λίστα με ονόματα χρήστη, ένα όνομα χρήστη ανά γραμμή.
/etc/cron.deny
υπάρχει και είναι άδειο, πράγμα που σημαίνει ότι όλοι οι χρήστες μπορούν να χρησιμοποιήσουν την εντολή crontab. Αν θέλετε να αρνηθείτε την πρόσβαση στις εντολές crontab σε ένα συγκεκριμένο χρήστη, προσθέστε το όνομα χρήστη σε αυτό το αρχείο.
/etc/cron.allow
υπάρχει μόνο οι χρήστες που παρατίθενται σε αυτό το αρχείο, μπορείτε να χρησιμοποιήσετε την εντολή
crontab
.
crontab
.Παραδείγματα εργασίας Cron
0 15 * * 1-5 command
dev null
, μόνο το τυπικό σφάλμα θα σταλεί στην καθορισμένη διεύθυνση ηλεκτρονικού ταχυδρομείου:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
μεταξύ των εντολών):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
PATH
HOME
,
PATH
,
SHELL
και
MAILTO
και εκτελέστε μια εντολή κάθε λεπτό.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
συμπέρασμα
Πώς να προσθέσετε τη γραμμή διευθύνσεων στη γραμμή εργασιών στα Windows 10/8 / Αγγίξτε πληκτρολόγιο, συνδέσμους και άλλες γραμμές εργαλείων στη γραμμή εργασιών των Windows. Η γραμμή διευθύνσεων σάς επιτρέπει να εκκινήσετε διευθύνσεις URL και εργαλεία.
Ένας από τους τρόπους με τους οποίους μπορείτε να κάνετε τα Windows καλύτερα για σας είναι να σας επιτρέπουν να ανοίγετε απευθείας έναν ιστότοπο από τη γραμμή εργασιών των Windows. Εδώ είναι ένας απλός τρόπος με τον οποίο μπορείτε να το κάνετε. Δεν χρειάζεται καν να ξεκινήσετε το πρόγραμμα περιήγησης για αυτό, πρώτα.
Προγραμματισμός τερματισμού λειτουργίας ή επανεκκίνησης στα Windows χρησιμοποιώντας το Χρονοδιάγραμμα εργασιών
Χρήση χρονοπρογραμματιστή εργασιών στα Windows 10/8/7 για προγραμματισμό τερματισμού λειτουργίας, επανεκκίνηση κ.λπ. ή να κάνετε την τερματισμός ή την επανεκκίνηση των Windows σε μια συγκεκριμένη χρονική στιγμή, είτε σε μία μόνο στιγμή ή περιοδικά.
Δημιουργήστε υπενθυμίσεις εργασιών αναδυόμενων εργασιών χρησιμοποιώντας τον προγραμματιστή εργασιών παραθύρων
Ναι, θα μπορούσατε εύκολα να δημιουργήσετε υπενθυμίσεις εργασιών που εμφανίζονται πάνω από τα πάντα στον υπολογιστή σας, χρησιμοποιώντας το Windows Task Scheduler. Δες πως.







