Διαχείριση της εργασίας Cron και αυτοματοποίηση των βασικών εργασιών διακομιστή

Άρθρο που γράφτηκε από:
  • Προτεινόμενα άρθρα
  • Ενημερώθηκε: Sep 06, 2017

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

Για το σκοπό αυτό, σχεδόν κάθε server που βασίζεται σε Unix ή Linux προσφέρει έναν αυτοματοποιημένο διαχειριστή εργασιών γνωστού ως "cron εργασίας"Ή" Crontab ".

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

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

Οι χρήστες θα μπορούν να χαλαρώσουν ενώ ο διακομιστής τους κάνει όλη τη βαριά ανύψωση για ώρες. ή μπορούν απλά να προγραμματίσουν το έργο που πρέπει να ολοκληρωθεί ενώ είναι δύσκολο στην εργασία στα δικά τους γραφεία. Επειδή είναι αυτοματοποιημένη, μια εργασία Cron μπορεί να συμβεί σχεδόν σε οποιαδήποτε ώρα της ημέρας.

Μαθαίνοντας να λέτε την ώρα χρησιμοποιώντας μια μορφή εργασίας Cron

Μια εργασία Cron δεν είναι ακριβώς ένα εύκολο πράγμα να κυριαρχήσει. στην πραγματικότητα, θεωρείται ευρέως μία από τις πιο προηγμένες διαμορφώσεις που διατίθενται σε ένα πρότυπο Linux or Unix web server. Αυτό συμβαίνει εν μέρει επειδή η γλώσσα που χρησιμοποιείται για τον προγραμματισμό αυτών των εργασιών είναι τόσο αρχαϊκή και, σε ορισμένες περιπτώσεις, εντελώς προς τα πίσω. Όταν πρόκειται να μιλήσουμε για ένα συγκεκριμένο χρονικό διάστημα στην εργασία Cron ή στην εν λόγω καρτέλα Cron, τα πράγματα είναι σίγουρα προς τα πίσω, ανάποδα και λίγο συγκεχυμένα.

Η μορφή για την αναφορά χρόνου μέσω μιας εργασίας Cron είναι τέτοια:

ΣΗΜΕΙΩΣΗ ΜΗΝΑΣ ΗΜΕΡΑΣ ΜΗΝΑΣ ΗΜΕΡΑΣ ΔΕΥΤΕΡΑΣ ΕΒΔΟΜΑΔΑ

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

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

Ως εκ τούτου, ας θέσουμε μια δουλειά Cron για 10: 30 είμαι τον Ιούλιο 7th για να πάρετε μια αίσθηση για το πώς μια δουλειά του χρόνου Cron κοιτάζει όταν έχει μετατραπεί σε αυστηρά αριθμούς.

30 10 07 07 *

Το παραπάνω παράδειγμα δηλώνει ότι η εργασία πρέπει να ολοκληρωθεί στο 30th λεπτό της δέκατης ώρας την έβδομη ημέρα του έβδομου μήνα. Όλοι οι αριθμοί είναι διψήφιοι, ακόμη και όταν ο μήνας ή η ημέρα είναι μόνο ένα ψηφίο. Αυτό είναι σημαντικό να θυμόμαστε, καθώς ένα μόνο ψηφίο συχνά προκαλεί την άκυρη δουλειά του Cron και απλά δεν θα εκτελεστεί ποτέ. Στο τέλος της δομής con, ένας αστερίσκος δείχνει ότι η εργασία θα πρέπει να εκτελείται σε οποιαδήποτε ημέρα της εβδομάδας. Αυτό είναι σημαντικό, καθώς η τοποθέτηση στο 03 για την Τετάρτη θα σήμαινε ότι το έργο θα εκτελείται μόνο τον Ιούλιο 7th εάν η ημέρα ήταν Τρίτη. Αυτό είναι πιθανό να συμβεί μία φορά κάθε επτά ή οκτώ χρόνια, η οποία είναι λίγο απορροφήσει για τους περισσότερους προγραμματιστές να εξετάσουν.

Ένας άλλος σημαντικός παράγοντας που πρέπει να ληφθεί υπόψη κατά τη δημιουργία μιας εργασίας Cron είναι ότι η μορφή ωρών είναι στρατιωτικός χρόνος 24-ώρα και όχι ώρα 12 civilian time. Για να αλλάξετε την ώρα της εργασίας Cron σε 10 pm, η ώρα θα αλλάξει σε 22 αντί για το τρέχον 10.

Παραδείγματα εργασίας Cron

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

  • @καθημερινά
  • @μηνιαίος
  • @ετήσια

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

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

Πιάνοντας την μεταβλητή "COMMAND" και τι να κάνετε με αυτήν

Όπως φαίνεται στο παραπάνω παράδειγμα, η κατασκευή μιας πραγματικής εργασίας Cron είναι σχετικά εύκολη. Η ημερομηνία πρέπει πρώτα να οριστεί και στη συνέχεια η λειτουργία της εργασίας Cron ορίζεται αμέσως μετά. Αυτή η λειτουργία μπορεί να είναι κυριολεκτικά οτιδήποτε, συμπεριλαμβανομένης της εκτέλεσης μιας δέσμης ενεργειών PHP ή της εκτέλεσης μιας προσαρμοσμένης δέσμης αντιγράφων ασφαλείας που αποθηκεύει τα αρχεία και τα δεδομένα του διακομιστή σε ένα απομακρυσμένο ή τοπικό αρχείο. Για διευκρίνιση, θα βασιστούμε στο παράδειγμα που χρησιμοποιήσαμε προηγουμένως και θα δώσαμε εντολή στη δουλειά του Cron να εκτελέσει μια δέσμη ενεργειών PHP τον Ιούλιο 7th στο 10: 30 το πρωί. Αυτή η δέσμη ενεργειών PHP θα ονομάζεται "backup.php" και θα υποθέσουμε ότι το αρχείο PHP είναι ένα πλήρες σενάριο δημιουργίας αντιγράφων ασφαλείας το οποίο συλλέγει, συμπιέζει και αποθηκεύει αρχεία ιστότοπου την έβδομη ημέρα του μήνα, όταν το ζητήσει ο διακομιστής. Εδώ είναι αυτό που μοιάζει:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Όταν αυτή η εργασία Cron εισαχθεί στη λίστα με τις καρτέλες Cron του διακομιστή, θα εκτελείται αυτόματα στο 10: 30 κάθε Ιούλιο 7 κάθε έτους. Θα εκτελέσει το script δημιουργίας αντιγράφων ασφαλείας PHP που βρίσκεται στον κατάλογο "backup-scripts" και εκεί λειτουργεί η πραγματική ιδιοφυία της ρύθμισης εργασιών Cron.

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

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

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

Διαχείριση του συνολικού αρχείου καρτέλας Cron σε τυπικό διακομιστή

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

crontab -r

Αυτή η εντολή καταργεί (κατά συνέπεια "r") ή διαγράφει ολόκληρο το αρχείο καρτέλας Cron. Αυτό θα το καθαρίσει αποτελεσματικά από όλες τις εντολές και τα αυτοματοποιημένα σενάρια και θα το επαναφέρει σε ένα κενό αρχείο που μπορεί να ξαναχτιστεί. Αυτή είναι μια κατάλληλη επιλογή για όσους έχουν καταφέρει να καταστρέψουν τον φάκελο ή να καταχραστούν κάπως τα καθήκοντα και τις ώρες. Μερικές φορές, είναι απλά πιο εύκολο να ξεκινήσετε από παντού.

crontab -e

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

crontab -l

Σε αυτή την περίπτωση, είναι αρκετά εύκολο να θυμηθείτε συνδέοντας το "L" με το "look". Αυτή η εντολή επιτρέπει σε έναν διαχειριστή του διακομιστή να βλέπει απλά το πλήρες περιεχόμενο του αρχείου καρτέλας Cron χωρίς να το αφαιρεί εξ ολοκλήρου από το διακομιστή και χωρίς να έχει τη δυνατότητα να επεξεργαστεί τα περιεχόμενα. Αυτή η απεικόνιση μόνο για ανάγνωση του περιεχομένου καρτέλας Cron είναι ιδανική για να θυμάστε ποιες εργασίες είναι προγραμματισμένες για ποιους χρόνους και για την επαλήθευση της ακεραιότητας του ίδιου του αρχείου.

Γιατί είναι σημαντικό να ελέγχετε την εργασία Cron και ένα αρχείο αυτοματισμού καρτέλας Cron

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

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

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

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

Εύκολο στην εκμάθηση και ευκολότερη ανάπτυξη

Η δημιουργία μιας εργασίας Cron μέσα σε μια τυπική καρτέλα Cron είναι ένα από τα ευκολότερα πράγματα που μπορεί να κάνει ένας διαχειριστής διακομιστή.

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

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

Σχετικά με τον Jerry Low

Ιδρυτής του WebHostingSecretRevealed.net (WHSR) - ένα σχόλιο φιλοξενίας που εμπιστεύτηκε και χρησιμοποιήθηκε από τους χρήστες του 100,000. Περισσότερο από 15 χρόνια εμπειρίας στο web hosting, μάρκετινγκ θυγατρικών, και SEO. Συνεργάτης στο ProBlogger.net, Business.com, SocialMediaToday.com και πολλά άλλα.