Εάν γνωρίζετε το Linux, θα ξέρετε ότι το Cron είναι η εφαρμογή που χρησιμοποιείται για τον προγραμματισμό και την αυτοματοποίηση εργασιών σε περιβάλλον Linux. Το CronTab είναι η εντολή που χρησιμοποιείται για την πρόσβαση στο αρχείο Cron όπου ο χρήστης μπορεί να ορίσει και να προγραμματίσει εργασίες. Όχι, δεν έκανα λάθος CronTab στον τίτλο, το CornTab είναι ένα web-based GUI που σας επιτρέπει να ρυθμίσετε το πρόγραμμα και τις εντολές σας, και στη συνέχεια απλά αντιγράψτε και επικολλήστε το στο αρχείο cron.

Υπάρχουν και άλλες εφαρμογές GUI που έχουν δημιουργηθεί για την εύκολη επεξεργασία του cron, όπως το Gnome-Schedule. Ωστόσο, αν δεν θέλετε να εγκαταστήσετε νέες εφαρμογές, το Corntab είναι μια εξαιρετική λύση που βασίζεται στο web, ειδικά αν ρυθμίζετε μια εργασία cron σε έναν υπολογιστή που δεν έχει Gnome-Schedule ή δεν είναι συμβατός με αυτό.

Οι χρήσεις για το cron είναι αρκετά προφανείς, από το να προγραμματίζετε αντίγραφα ασφαλείας για να τρέχετε προσαρμοσμένα σενάρια σε συγκεκριμένες χρονικές στιγμές, να ανοίγετε προγράμματα με χρονοδιάγραμμα, το cron είναι ο τρόπος για να το κάνετε.

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

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

 man crontab 

Σίγουρα, μπορείτε να βρείτε το Google και να βρείτε άλλα μαθήματα και ίσως τις εγχειρίσιες σελίδες στο διαδίκτυο, αλλά είναι πάντα καλό να γνωρίζετε τον τρόπο σας γύρω από τη γραμμή εντολών!

Η σύνταξη για το cron έχει ως εξής:

 crontab [-u χρήστη] αρχείο crontab [-u χρήστη] [-i] {-e | -l | -r} [-s] 
  • -l επιλογή προκαλεί την εμφάνιση του τρέχοντος crontab στην τυπική έξοδο.
  • -r προκαλεί την κατάργηση του τρέχοντος crontab.
  • -e χρησιμοποιείται για την επεξεργασία του τρέχοντος crontab χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας που καθορίζεται από τις μεταβλητές περιβάλλοντος VISUAL ή EDITOR.
  • -u επιλογή καθορίζει το όνομα του χρήστη του οποίου το crontab πρόκειται να τροποποιηθεί. Αν δεν δοθεί αυτή η επιλογή, το crontab θα χρησιμοποιήσει τον τρέχοντα χρήστη που εκτελεί την εντολή.
  • -s προσθέτει την τρέχουσα συμβολοσειρά περιβάλλοντος ασφαλείας SELinux ως ρύθμιση MLS_LEVEL στο αρχείο crontab πριν από την επεξεργασία / αντικατάσταση (δείτε την τεκμηρίωση του MLS_LEVEL στο crontab. Αυτό δεν χρησιμοποιείται σε όλες τις παραλλαγές του Linux / cron).

Σημειώστε ότι ορισμένα προγράμματα πρέπει να εκτελεστούν με προνόμια root. Σε αυτή την περίπτωση, θα πρέπει να αλλάξετε στον χρήστη root με την εντολή su ή την εντολή sudo που θα πρέπει να λειτουργεί στις περισσότερες παραλλαγές του Linux (Debian, Ubuntu, Fedora).

Για να επεξεργαστείτε τον τύπο του crontab:

 crontab -e 

ή

 sudo crontab -e 

Κάποιοι βασικοί κανόνες για το cron

  • Ένα πεδίο μπορεί να είναι ένας αστερίσκος (*), ο οποίος πάντα σημαίνει "πρώτο-τελευταίο".
  • m-λεπτά (0-59)
  • h-ώρα (0-23)
  • dom-ημέρα του μήνα (1-31)
  • μήνα -μήνα του έτους (1-12)
  • ημέρα της εβδομάδας (0-6 με 0 = Κυριακή)
  • εντολή - εφαρμογή, σενάριο κ.λπ.

Σύνθετοι σύντομοι κωδικοί:

έννοια συμβολοσειράς
- -
@reboot Εκτελέστε μία φορά, κατά την εκκίνηση.
@ yearly Run μία φορά το χρόνο, "0 0 1 1 *".
@ ετήσια (ίδια με το @ έτος)
@monthly Εκτέλεση μία φορά το μήνα, "0 0 1 * *".
@ weekly Run μία φορά την εβδομάδα, "0 0 * * 0".
@deily Run μία φορά την ημέρα, "0 0 * * *".
@midnight (ίδια με την ημέρα)
@ τρέχει μία φορά την ώρα, "0 * * * *"

Οι τιμές που διαχωρίζονται με κόμματα μπορούν να χρησιμοποιηθούν για να τρέξουν περισσότερες από μία περιπτώσεις μιας συγκεκριμένης εντολής μέσα σε μια χρονική περίοδο.

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

Ας δημιουργήσουμε το cronjob μας.

Εάν εισάγετε πρώτα το crontab, θα έχετε πιθανώς τη δυνατότητα επιλογής του συντάκτη που θα χρησιμοποιήσει. Νιώστε ελεύθεροι να επιλέξετε οποιαδήποτε, αλλά κανονικά κολλάω με το nano αφού είναι απλό, καθαρό και κάνει τη δουλειά.

Για να ολοκληρώσετε την αρχική μας εργασία, πληκτρολογήστε:

 * * * * * echo "Το τρέχον λεπτό είναι: $ (ημερομηνία)" >> /tmp/minute.log 

Το "Control-x" θα σας ζητήσει να το αποθηκεύσετε και στη συνέχεια να το επιβεβαιώσετε. Θα πρέπει να δείτε ότι το cron ενημερώθηκε με επιτυχία. Η εργασία θα εκτυπώσει την τρέχουσα ημερομηνία / ώρα κάθε λεπτό σε ένα αρχείο που ονομάζεται minute.log στον κατάλογο / tmp.

Ακολουθεί η αυτόματη έξοδος για 6 λεπτά:

Ας πάρουμε φαντασία, τι γίνεται με την εκτύπωση της ημερομηνίας κάθε 2 λεπτά ...

 * / 2 * * * * echo "Το τρέχον λεπτό είναι: $ (ημερομηνία)" >> /tmp/minute.log 

Χρησιμοποιώντας το * / n όπου n είναι ένας θετικός ακέραιος θα λέει κάθε n λεπτό ή κάθε n ώρες.

Τι συμβαίνει με την εκτύπωση της ημερομηνίας στις 5:30 π.μ. κάθε Δευτέρα και Παρασκευή:

 30 5 * * 1, 5 echo "Το τρέχον λεπτό είναι: $ (ημερομηνία)" >> /tmp/minute.log 

Μη διστάσετε να παίξετε με προγραμματισμό απλών "echo" σε logfiles. Στη συνέχεια, προχωρήστε σε σενάρια και εφαρμογές.

Παίζοντας με το Corntab

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

Ακολουθεί βήμα προς βήμα η δημιουργία ενός crontab που θα εκτυπώνει την τρέχουσα ημερομηνία / ώρα κάθε δύο λεπτά, μόνο τον Ιανουάριο, τον Φεβρουάριο, τον Μάρτιο και τον Απρίλιο, την Πέμπτη και την Παρασκευή.

Πρώτα, κάντε κλικ στο "κάθε n λεπτά" και μετακινήστε το ρυθμιστικό σε 2 λεπτά.

Στη συνέχεια, κάντε κλικ για να αναπτύξετε μήνα, κάντε κλικ για να επιλέξετε "κάθε επιλεγμένο μήνα" και επιλέξτε Ιαν, Φεβ, Μαρ, Απρ.

Στη συνέχεια, κάντε κλικ για να αναπτύξετε την ημέρα της εβδομάδας, επιλέξτε "κάθε επιλεγμένη ημέρα της εβδομάδας" και επιλέξτε "Πέμ.

Τέλος, κάντε κλικ για να αναπτύξετε την εντολή Command και πληκτρολογήστε τον κώδικα / script. Στη συνέχεια, μπορείτε να αντιγράψετε τον πλήρη κώδικα cron από το Corntab και να τον επικολλήσετε στο crontab χρησιμοποιώντας τα βήματα στην αρχή αυτού του άρθρου.

Παραπομπές και περισσότερες πληροφορίες σχετικά με το Cron:

http://www.pantz.org/software/cron/croninfo.html
http://www.computerhope.com/unix/ucrontab.htm
https://help.ubuntu.com/community/CronHowto