4 τρόποι για να ελέγξετε εάν το cron λειτουργεί σε Linux

Το cron είναι ένας προγραμματιστής εργασιών για λειτουργικά συστήματα Linux και Unix. Έρχεται προεγκατεστημένο σε όλες τις διανομές Linux και είναι πιο κατάλληλο για την αυτοματοποίηση επαναλαμβανόμενων εργασιών.

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

Τι είναι το cron;

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

Το cron αυτοματοποιεί εργασίες συντήρησης ή διαχείρισης συστήματος που μπορεί να χρειαστεί να εκτελείτε συχνά.

Υπάρχουν πολλές διαθέσιμες υλοποιήσεις στο Linux. Η έκδοση που θα έχετε εξαρτάται από τη διανομή σας. Το “Vixie cron”, που πήρε το όνομά του από τον αρχικό προγραμματιστή του, Paul Vixie, είναι συνηθισμένο και προεπιλεγμένο στο Debian και στο Ubuntu. Το Arch δεν έχει καμία έκδοση του cron υπέρ των systemd timers.

Το cronie είναι ένα πιρούνι του Vixie cron που διατίθεται ως τυπικό πακέτο Arch. Για να το εγκαταστήσετε, χρησιμοποιήστε το pacman:

 sudo pacman -S cronie 

Στη συνέχεια ξεκινήστε και ενεργοποιήστε το με:

 sudo systemctl start cronie.service
sudo systemctl enable cronie.service

Μπορείτε να δείτε ποια έκδοση του cron είναι εγκατεστημένη στο σύστημά σας αναζητώντας τη σελίδα του:

 man cron 

Πώς να ελέγξετε εάν το cron λειτουργεί σε Linux

Ακολουθούν μερικοί από τους τρόπους με τους οποίους μπορείτε να ελέγξετε εάν το cron λειτουργεί σωστά:

  Πώς να δημιουργήσετε και να εγκαταστήσετε κλειδιά SSH από το κέλυφος του Linux

1. Ελέγξτε την κατάσταση υπηρεσίας cron στο Linux

Ένας τρόπος για να ελέγξετε εάν το cron λειτουργεί είναι ελέγχοντας την κατάσταση της υπηρεσίας cron εκτελώντας μια βασική εντολή Linux. Ανοίξτε το τερματικό Linux πατώντας Ctrl + Alt + T και χρησιμοποιήστε την εντολή systemctl για να ελέγξετε την κατάσταση του cron:

 sudo systemctl status cron 

Εάν δείτε την ακόλουθη έξοδο, αυτό σημαίνει ότι το cron είναι ενεργό και λειτουργεί κανονικά στο σύστημά σας.

Τι γίνεται όμως αν το cron βρίσκεται σε ανενεργή κατάσταση όπως φαίνεται παρακάτω;

Μπορείτε να ξεκινήσετε την υπηρεσία ως εξής:

 sudo systemctl start cron.service 

Μετά την εκκίνηση της υπηρεσίας cron, ενεργοποιήστε την έτσι ώστε να ξεκινά κάθε φορά που το σύστημα επανεκκινείται:

 sudo systemctl enable cron.service 

2. Ελέγξτε τα αρχεία καταγραφής cron στο Linux

Ένας άλλος τρόπος για να ελέγξετε εάν το cron λειτουργεί σωστά είναι να εξετάσετε τα αρχεία καταγραφής. Τα αρχεία καταγραφής cron αποθηκεύονται στον κατάλογο /var/log/syslog στο Linux.

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

Μπορείτε να δείτε τα αρχεία καταγραφής εργασιών cron στο αρχείο syslog εκτελώντας την ακόλουθη εντολή:

 grep 'cron' /var/log/syslog 

Θα δείτε μια παρόμοια έξοδο που δείχνει ότι το cron λειτουργεί καλά και τα αρχεία καταγραφής του αποθηκεύονται στο αρχείο καταγραφής:

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

  Πώς να συγχρονίσετε το Google Drive σε Linux με το OverGrive

Σε αυτό το παράδειγμα, θα χρησιμοποιήσουμε το nano editor, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα επεξεργασίας με το οποίο αισθάνεστε άνετα.

Ανοίξτε το ακόλουθο αρχείο χρησιμοποιώντας το nano:

 nano /etc/rsyslog.d/50-default.conf 

Εντοπίστε τη γραμμή που ξεκινά με:

 #cron.* 

Καταργήστε το σχόλιο αυτής της γραμμής αφαιρώντας το σύμβολο κατακερματισμού (#). Στη συνέχεια, αποθηκεύστε και βγείτε από το αρχείο πατώντας Ctrl + X, μετά πατήστε Y και πατήστε Enter.

Επανεκκινήστε την υπηρεσία rsyslog εκδίδοντας αυτήν την εντολή:

 sudo service rsyslog restart 

Τώρα θα λάβετε αρχεία καταγραφής στο αρχείο cron.log που βρίσκεται στον κατάλογο /var/log.

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

3. Εκτέλεση cron Job σε Linux

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

Πρώτα πρέπει να δημιουργήσετε ένα σενάριο Bash. Η δέσμη ενεργειών Bash σάς επιτρέπει να αυτοματοποιείτε καθημερινές εργασίες στο Linux.

Ας δημιουργήσουμε ένα σενάριο Bash που θα εκτυπώνει “το cronjob μου λειτουργεί!” σε ένα αρχείο TXT. Για να δημιουργήσετε το αρχείο, πρώτα, ανακαλύψτε τον τρέχοντα κατάλογο εργασίας σας χρησιμοποιώντας αυτήν την εντολή:

 pwd 

Δημιουργήστε ένα αρχείο στον τρέχοντα κατάλογο χρησιμοποιώντας την εντολή αφής:

 touch file.txt 

Μετά από αυτό, δημιουργήστε ένα αρχείο Bash χρησιμοποιώντας το nano:

 nano script.sh 

Προσθέστε τα ακόλουθα περιεχόμενα στο αρχείο:

 #! /usr/bin/bash
echo "my cronjob is working!" >> /home/username/file.txt

Βεβαιωθείτε ότι παρέχετε τη σωστή θέση του αρχείου κειμένου που δημιουργήσατε. Αποθηκεύστε και βγείτε από το αρχείο πατώντας Ctrl + X, μετά Y και πατήστε Enter.

Δώστε δικαιώματα εκτέλεσης στο σενάριο Bash:

 chmod +x script.sh 

Τώρα δημιουργήστε μια εργασία cron για να εκτελέσετε το σενάριο. Για να το κάνετε αυτό, ανοίξτε το αρχείο crontab με:

 crontab -e 

Εισαγάγετε την ακόλουθη γραμμή στο τέλος του αρχείου.

 * * * * * /path/to/script.sh 

Οι πέντε αστερίσκοι ταιριάζουν με την ώρα εκτέλεσης, στην οποία ο πρώτος αστερίσκος αντιπροσωπεύει τα λεπτά (0-59), ο δεύτερος αντιπροσωπεύει ώρες (σε 24ωρη ώρα, άρα η 1:00 μ.μ. είναι 13, τα μεσάνυχτα ξεκινούν στις 0), Ο τρίτος αστερίσκος σημαίνει την ημέρα (0-7, 0 και 7 είναι Κυριακή), ο τέταρτος δείχνει τον μήνα και ο τελευταίος αστερίσκος δείχνει το έτος.

  5 καλύτερες εναλλακτικές λύσεις VirtualBox στο Linux

Το όνομα του εκτελέσιμου αρχείου και η διαδρομή του αναφέρονται επίσης στο αρχείο.

Μετά την αποθήκευση και το κλείσιμο του αρχείου, θα δείτε ένα μήνυμα “crontab: εγκατάσταση νέου crontab” στο τερματικό.

Για να ελέγξετε εάν η εργασία cron λειτούργησε ή όχι, μεταβείτε στον κατάλογο του file.txt και εκτυπώστε τα περιεχόμενά του στο τερματικό χρησιμοποιώντας το cat:

 cat file.txt 

Αυτό δείχνει ότι το cron λειτουργεί καλά.

4. Ελέγξτε τις διεργασίες που εκτελούνται σε Linux

Ένας άλλος τρόπος με τον οποίο μπορείτε να ελέγξετε εάν ο δαίμονας cron λειτουργεί είναι να αναφέρετε τις διεργασίες που εκτελούνται στο σύστημά σας. Μπορείτε να το πετύχετε χρησιμοποιώντας την εντολή ps. Ο δαίμονας cron θα εμφανιστεί στην έξοδο ως crond.

 ps aux | grep cron 

Αυτό επιβεβαιώνει ότι η διαδικασία cron εκτελείται στο σύστημά σας Linux.

Αυτοματοποίηση και προγραμματισμός εργασιών συστήματος με cron

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

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

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