Το τερματικό Linux μας επιτρέπει να κάνουμε πράγματα πέρα από την απλή πληκτρολόγηση εντολών. Σε αυτήν την περίπτωση θα μιλήσουμε για αυτοματοποίηση εργασιών με το Cron. Ο αυτοματισμός μας επιτρέπει όχι μόνο να αποφεύγουμε επαναλαμβανόμενες εργασίες, αλλά και να τις εκτελεί ο υπολογιστής όταν δεν είμαστε παρόντες. Αυτό είναι ιδιαίτερα χρήσιμο σε διακομιστές.
Το Cron είναι ένας δαίμονας που είναι υπεύθυνος για την εκτέλεση εργασιών σε ένα συγκεκριμένο χρονικό διάστημα. Παρόλο που η λειτουργία του είναι η διαχείριση τακτικών εργασιών συντήρησης του συστήματος, μπορούμε να προσθέσουμε και άλλες που μας ενδιαφέρουν.
Όταν μιλάμε για δαίμονες, δεν αναφερόμαστε σε ένα μικρό διαβολάκι μέσα στον υπολογιστή μας. Στην πληροφορική, ένας δαίμονας είναι μια εφαρμογή ή διεργασία που εκτελείται στο παρασκήνιο του λειτουργικού συστήματος χωρίς να απαιτεί άμεση αλληλεπίδραση με τον χρήστη. Οι αρμοδιότητές τους περιλαμβάνουν συνδέσεις δικτύου, εκτύπωση, διακομιστές ιστού και παρακολούθηση πόρων.
Μερικά από τα κύρια χαρακτηριστικά του
- Συνήθως ξεκινούν με την εκκίνηση του συστήματος.
- Εκτελούνται στο παρασκήνιο, χωρίς ο χρήστης να χρειάζεται να γνωρίζει την ύπαρξή τους.
- Έχουν σχεδιαστεί για να εκτελούν εργασίες μόνιμα ή ως αντίδραση σε ορισμένα συμβάντα.
Αυτοματοποίηση εργασιών με το Cron
Αν θέλουμε να πούμε στο Cron τι να κάνει, μπορούμε να το κάνουμε χρησιμοποιώντας ένα αρχείο crontab. Είναι απλώς ένα αρχείο κειμένου που υποδεικνύει μια σειρά εντολών που το cron πρέπει να εκτελέσει σε μια καθορισμένη ημερομηνία. Υπάρχουν δύο τύποι αρχείων crontab: το αρχείο crontab που δημιουργείται από το σύστημα και το αρχείο crontab που δημιουργείται από τον χρήστη.
Σε καμία περίπτωση δεν πρέπει να αγγίξουμε το αρχείο crontab του συστήματος, το οποίο χρησιμοποιείται από το Linux για διαμόρφωση και συντήρηση. Είναι αδύνατο να το τροποποιήσετε κατά λάθος, καθώς αυτό το αρχείο βρίσκεται στον φάκελο. /etc/crontab.
Δημιουργώντας τα δικά μας crontab
Το Cron απαιτεί οι εργασίες που του αναθέτουμε να έχουν τις παραμέτρους που αναφέρονται με την εξής σειρά:
h: Ώρα έναρξης στην περιοχή 0-23.
m: Λεπτά στο διάστημα 0-59.
d: Ημέρα του μήνα μεταξύ του διαστήματος 1-31
μες: Καθορίζει τον μήνα του έτους με εύρος 1-12
s: Ημέρα της εβδομάδας με το διάστημα 0-6
Αυτά τα δεδομένα μπαίνουν μέσα στο αρχείο crontab. Για να δημιουργήσουμε αυτό το αρχείο γράφουμε την εντολή:
crontab –u nombre de usuario –e
Αν το crontab πρόκειται να είναι για τον προεπιλεγμένο χρήστη, μπορούμε να παραλείψουμε την παράμετρο -u
Όταν το εκτελέσουμε για πρώτη φορά, θα μας πει ότι το αρχείο δεν υπάρχει και θα μας προτείνει να δημιουργήσουμε ένα και να το επεξεργαστούμε με έναν από τους επεξεργαστές που είναι εγκατεστημένοι στον υπολογιστή.
Μερικά σημεία που πρέπει να έχετε κατά νου κατά την επεξεργασία του crontab είναι:
- Κάθε εργασία μπαίνει σε μια γραμμή
- Σε κάθε περίπτωση, πρέπει να αναφέρεται η ημερομηνία και η ώρα κατά την οποία πρέπει να εκτελεστεί κάθε εργασία. Για να υποδειχθεί η περιοδικότητα (για παράδειγμα Τρίτη στις 18 μ.μ.) γράφονται αστερίσκοι αντί για τις υπόλοιπες παραμέτρους.(*)
- Είναι δυνατό να αντιστοιχίσετε περισσότερες από μία τιμές σε μια παράμετρο (Για παράδειγμα Τρίτη και Πέμπτη στις 18 μ.μ.) Διαχωρίζοντας και τις δύο τιμές με κόμματα.
- Πρέπει να αφήνονται κενά μεταξύ των παραμέτρων.
- Καθορίστε τον κατάλογο όπου βρίσκεται η εφαρμογή εκκίνησης εντολών.
Για να δώσουμε ένα παράδειγμα, αν θέλουμε να επανεκκινούμε τον υπολογιστή κάθε μέρα στις 19 μ.μ.:
0 19 * * * /sbin/reboot
Για να γίνει η επανεκκίνηση μόνο τις Τετάρτες, η οδηγία θα είναι:
0 20 * * 3 /sbin/reboot
.
Υπάρχουν μερικές συντομεύσεις που μας επιτρέπουν να αποφύγουμε την εγγραφή όλων των παραμέτρων:
@ωριαίος: Αν θέλουμε να εκτελούμε μια εντολή στην αρχή κάθε ώρας.
@καθημερινά: Για να εκτελέσετε την εντολή στην αρχή κάθε ημέρας.
@εβδομαδιαίος: Εκτελέστε την εντολή την πρώτη ημέρα της εβδομάδας.
@Μηνιαίο: Η εντολή εκτελείται το πρώτο λεπτό κάθε μήνα.
@ετήσιαΤο ίδιο αλλά στο πρώτο λεπτό κάθε έτους..
Μερικά παραδείγματα χρήσης αυτής της εντολής:
@daily /bin/sh /ruta_al_script/nombre_del_script.sh
Εκτελέστε προσαρμοσμένες οδηγίες σε ένα bash script στην αρχή της ημέρας.
@hourly /bin/python3 /ruta_al_script/nombre_del_script.py
Εκτελεί ένα σενάριο python κάθε ώρα.
Θα πρέπει πάντα να βεβαιωνόμαστε ότι τα σενάρια έχουν δικαιώματα εκτέλεσης.