Crontab στο Linux: ΠΑΡΑΔΕΙΓΜΑΤΑ Προγραμματισμού Εργασίας
Τι είναι το crontab;
Το Cron πήρε το όνομά του από την ελληνική λέξη «Χρόνος» που χρησιμοποιείται για τον χρόνο. Είναι μια διαδικασία συστήματος που θα εκτελεί αυτόματα εργασίες σύμφωνα με το συγκεκριμένο χρονοδιάγραμμα. Είναι ένα σύνολο εντολών που χρησιμοποιούνται για την εκτέλεση τακτικών εργασιών προγραμματισμού. Το Crontab σημαίνει "cron table". Επιτρέπει τη χρήση προγραμματιστή εργασιών, που είναι γνωστός ως cron για την εκτέλεση εργασιών.
Το Crontab είναι επίσης το όνομα του προγράμματος, το οποίο χρησιμοποιείται για την επεξεργασία αυτού του προγράμματος. Καθοδηγείται από ένα αρχείο crontab, ένα αρχείο διαμόρφωσης που υποδεικνύει εντολές φλοιού που εκτελούνται περιοδικά για το συγκεκριμένο χρονοδιάγραμμα.
Γιατί να χρησιμοποιήσετε το Cronjobs;
Ακολουθούν οι λόγοι για τη χρήση του Cronjobs στο Linux:
- Βοηθά το λειτουργικό σύστημα να λάβει ένα προγραμματισμένο αντίγραφο ασφαλείας των αρχείων καταγραφής ή της βάσης δεδομένων.
- Διαγραφή παλαιών αρχείων καταγραφής
- Archive και εκκαθάριση πίνακες βάσης δεδομένων
- Στείλτε οποιοδήποτε email ειδοποίησης, όπως ενημερωτικά δελτία, email λήξης κωδικού πρόσβασης
- Τακτικός καθαρισμός αποθηκευμένων δεδομένων
- Το Crontab είναι μια ιδανική επιλογή για την αυτοματοποίηση εργασιών Unix.
- Χρησιμοποιείται για την αυτοματοποίηση της συντήρησης του συστήματος
Πώς να χρησιμοποιήσετε το cron στο Linux;
Linux σύστημα Το πακέτο έχει έναν χρήσιμο προγραμματιστή εργασιών που ονομάζεται crontab. Το Crontab είναι δημοφιλές επειδή μπορεί να προγραμματιστεί να εκτελεί μια αυτοματοποιημένη διαδικασία ως root. Επομένως, η εκτέλεση μιας αυτοματοποιημένης διαδικασίας ως root διευκολύνει τις αλλαγές συστήματος. Απλώς πρέπει να αλλάξετε την εργασία και στη συνέχεια να περιμένετε μέχρι να ξεκινήσει ξανά η εργασία.
Μορφή Linux Crontab
Το Crontab του Linux έχει έξι πεδία. Τα πρώτα πέντε πεδία ορίζουν την ώρα και την ημερομηνία εκτέλεσης και το 6ο πεδίο χρησιμοποιείται για την εκτέλεση εντολών.
Σύνταξη Crontab:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
- Αστρικά (*): Χρήση για αντιστοίχιση
- Ορισμός εύρους: Σας επιτρέπει να ορίσετε ένα εύρος με τη βοήθεια παύλας όπως 1-10 ή 30-40 ή jan-mar, mon-wed.
- Ορίστε πολλαπλές περιοχές: Σας επιτρέπει να ορίσετε διάφορα εύρη με διαχωρισμένες εντολές όπως Απρίλιος-Ιούνιος, Οκτώβριος-Δεκ.
Πώς να προσθέσετε/τροποποιήσετε το Crontab
Ο χρήστης μπορεί να επεξεργαστεί τις εργασίες του crontab με τη βοήθεια της ακόλουθης εντολής crontab:
$ crontab -u -e
Η παραπάνω εντολή θα ανοίξει την προσωπική διαμόρφωση crontab του συστήματος του υπολογιστή σας, την οποία μπορείτε να επεξεργαστείτε χρησιμοποιώντας τον προεπιλεγμένο επεξεργαστή κειμένου.
Δεν χρειάζεται να επανεκκινήσετε το crontab σας, καθώς θα λάβει τις αλλαγές σας αυτόματα όταν χρησιμοποιήσετε την ακόλουθη εντολή.
$ crontab -l
Για να καταργήσετε τις εργασίες crontab, χρησιμοποιήστε την ακόλουθη εντολή.
$ crontab -r
Για να προσθέσετε ή να ενημερώσετε εργασία στο crontab, χρησιμοποιήστε την παρακάτω εντολή.
crontab -e
Εντολή για επεξεργασία του crontab άλλου χρήστη
crontab -u username -e
Πώς να καταχωρήσετε το Crontab
Εντολή για προβολή των καταχωρήσεων crontab του τρέχοντος χρήστη
crontab -l
Εντολή για προβολή καταχωρήσεων crontab ενός συγκεκριμένου χρήστη:
crontab -u username -l
Σημαντικά παραδείγματα Crontab
Εδώ, είναι μερικά σημαντικά παραδείγματα του Crontab
Descriptιόν | εντολή |
---|---|
Εντολή Cron για να κάνετε τις διάφορες εργασίες προγραμματισμού. Η παρακάτω εντολή εκτελείται στις 7 π.μ. και στις 5 μ.μ. καθημερινά. |
0 7,17 * * * /scripts/script.sh |
Εντολή για εκτέλεση cron μετά από κάθε 5 λεπτά. |
*/5* * * * * /scripts/script.sh |
Η εντολή Cron scheduler σάς βοηθά να εκτελέσετε την εργασία σε κάθε Monday στις 5 το πρωί. Αυτή η εντολή είναι χρήσιμη για την εκτέλεση εβδομαδιαίων εργασιών όπως η εκκαθάριση συστήματος. |
0 5 * * mon /scripts/script.sh |
Δώστε εντολή να εκτελέσετε το σενάριό σας σε διάστημα 3 λεπτών. |
*/3 * * * * /scripts/monitor.sh |
Εντολή για να προγραμματίσετε ένα cron στο οποίο εκτελείται για έναν συγκεκριμένο μήνα. Αυτή η εντολή για την εκτέλεση εργασιών εκτελείται τους μήνες Φεβρουάριο, Ιούνιο και Σεπτέμβριο. Μερικές φορές χρειάζεται να προγραμματίσουμε μια εργασία για να εκτελέσουμε μια επιλεγμένη μηνιαία εργασία. |
* * * feb,jun,sep * /script/script.sh |
Εντολή για εκτέλεση σε επιλεγμένες ημέρες. Αυτό το παράδειγμα θα εκτελεστεί το καθένα Monday και Τετάρτη στις 5 το απόγευμα. |
0 17 * * mon,wed /script/script.sh |
Αυτή η εντολή επιτρέπει στο cron να εκτελεστεί το πρώτο Σάββατο κάθε μήνα. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
Εντολή εκτέλεσης ενός σεναρίου για διάστημα 6 ωρών, ώστε να μπορεί να ρυθμιστεί όπως παρακάτω. |
0 */6 * * * /scripts/script.sh |
Αυτή η εντολή προγραμματίζει μια εργασία που θα εκτελεστεί δύο φορές Monday και Τρίτη. Χρησιμοποιήστε τις παρακάτω ρυθμίσεις για να το κάνετε. |
0 4,17 * * mon,tue /scripts/script.sh |
Η εντολή προγραμματίζει ένα cron για εκτέλεση μετά από κάθε 15 δευτερόλεπτα. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
Εντολή προγραμματισμού εργασιών σε ετήσια βάση. Η χρονική σήμανση @yearly είναι= σε "0 0 5 1 *". Αυτό εκτελεί την εργασία στο πέμπτο λεπτό κάθε έτους. Μπορείτε να το χρησιμοποιήσετε για να στείλετε ευχές για το νέο έτος. |
@yearly /scripts/script.sh |
Εντολή εργασιών για εκτέλεση σε μηνιαία βάση. Το @monthly timestamp είναι παρόμοιο με το "0 0 1 * *". Αυτή η έκφραση εντολής επιτρέπει την εκτέλεση μιας εργασίας το πρώτο λεπτό του μήνα. |
@monthly /scripts/script.sh |
Εντολή για την εκτέλεση πολλαπλών εργασιών χρησιμοποιώντας ένα μόνο cron. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
Εντολή προγραμματισμού εργασιών για εκτέλεση σε εβδομαδιαία βάση. Η χρονική σήμανση @weekly είναι παρόμοια με "0 0 4 * ήλιος". Χρησιμοποιείται για την εκτέλεση εβδομαδιαίων εργασιών όπως η εκκαθάριση συστήματος κ.λπ. |
@weekly /bin/script.sh |
Η εργασία θα προγραμματιστεί να εκτελείται σε καθημερινή βάση. Η @daily timestamp είναι παρόμοια με το "0 2 * * *". Εκτελεί την εργασία στο δεύτερο λεπτό κάθε μέρας. |
@daily /scripts/script.sh |
Επιτρέπει την εκτέλεση εργασιών ανά ώρα. Η @hourly timestamp είναι παρόμοια με το "0 * * * *". Αυτή η εντολή εκτελεί μια εργασία το πρώτο λεπτό κάθε ώρας. |
@hourly /scripts/script.sh |
Επιτρέπει την εκτέλεση εργασιών κατά την επανεκκίνηση του συστήματος. Η έκφραση @reboot είναι χρήσιμη για τις εργασίες που το σύστημα θέλει να εκτελέσει κατά την εκκίνηση του συστήματός σας. Αυτό είναι χρήσιμο για την αυτόματη έναρξη εργασιών στο παρασκήνιο. |
@reboot /scripts/script.sh |
Περίληψη:
- Το Cron πήρε το όνομά του από την ελληνική λέξη «Χρόνος» που χρησιμοποιείται για τον χρόνο.
- Τα Cronjobs βοηθούν το λειτουργικό σύστημα να λαμβάνει ένα προγραμματισμένο αντίγραφο ασφαλείας των αρχείων καταγραφής ή της βάσης δεδομένων.
- Το πακέτο συστήματος Linux έχει έναν χρήσιμο προγραμματιστή εργασιών που ονομάζεται crontab που μπορεί να προγραμματιστεί για να εκτελεί μια αυτοματοποιημένη διαδικασία ως root.
- Το Crontab του Linux έχει έξι πεδία. Τα πρώτα πέντε πεδία ορίζουν την ώρα και την ημερομηνία εκτέλεσης και το 6ο πεδίο χρησιμοποιείται για την εκτέλεση εντολών.