Πώς μπορώ να ελέγξω αν λειτουργεί το Crontab;

How Do I Check If Crontab Is Working



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

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







Αυτός είναι ο λόγος για τον οποίο ο στόχος του σημερινού άρθρου είναι να σας διδάξει τις δύο μεθόδους ελέγχου εάν το crontab λειτουργεί ή όχι κατά τη χρήση του Linux Mint 20.



Μέθοδοι ελέγχου εάν το Crontab λειτουργεί ή όχι

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



Μέθοδος # 1: Με τον έλεγχο της κατάστασης της υπηρεσίας Cron

Για να ελέγξετε εάν το crontab λειτουργεί ή όχι, εξετάζοντας την κατάσταση της υπηρεσίας Cron, πρέπει να εκτελέσετε τα ακόλουθα βήματα:





Εκκινήστε το τερματικό σε όποια διανομή Linux εργάζεστε. Όπως ήδη αναφέρθηκε παραπάνω, χρησιμοποιήσαμε το Linux Mint 20 για να δείξουμε και τις δύο μεθόδους ελέγχου εάν το crontab λειτουργεί ή όχι. Επομένως, έχουμε δείξει επίσης το τερματικό αυτής της διανομής Linux στην παρακάτω εικόνα:



Τώρα για να ελέγξετε την κατάσταση της υπηρεσίας Cron στο Linux Mint 20, πρέπει να πληκτρολογήσετε την ακόλουθη εντολή:

$ systemctl status cron

Η εκτέλεση της εντολής systemctl μαζί με τη σημαία κατάστασης θα ελέγξει την κατάσταση της υπηρεσίας Cron, όπως φαίνεται στην παρακάτω εικόνα. Εάν η κατάσταση είναι Ενεργή (Εκτέλεση), τότε θα επιβεβαιωθεί ότι το crontab λειτουργεί τέλεια, διαφορετικά όχι.

Στην περίπτωσή μας, το crontab λειτούργησε καλά, γι 'αυτό μπορείτε να παρακολουθήσετε την κατάσταση Ενεργό (Τρέξιμο) στην παραπάνω εικόνα. Ωστόσο, εάν το crontab δεν λειτουργεί, τότε μπορείτε πάντα να ξεκινήσετε αυτήν την υπηρεσία εκτελώντας την ακόλουθη εντολή στο τερματικό σας:

$ sudo υπηρεσία έναρξη cron

Η εκκίνηση μιας νέας υπηρεσίας στο Linux Mint 20 απαιτεί πάντα δικαιώματα χρήστη root. Αυτός είναι ο λόγος για τον οποίο εάν ξεχάσετε να αναφέρετε τη λέξη-κλειδί sudo πριν από την παραπάνω εντολή, τότε θα εμφανιστεί ένα μήνυμα σφάλματος στο τερματικό. Ωστόσο, εάν είστε συνδεδεμένοι στον ριζικό λογαριασμό χρήστη, τότε είναι καλό να πάτε ακόμη και χωρίς τη λέξη -κλειδί sudo.

Μέθοδος # 2: Εκτέλεση εργασίας Crontab

Για να ελέγξετε εάν το crontab λειτουργεί ή όχι εκτελώντας μια εργασία crontab, πρέπει να εκτελέσετε τα ακόλουθα βήματα:

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

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

$ chmod +x Cron.sh

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

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

$ crontab -e

Όταν το αρχείο crontab θα εμφανιστεί στο τερματικό σας, πρέπει να πληκτρολογήσετε τη γραμμή που επισημαίνεται στην παρακάτω εικόνα στο αρχείο σας. Η πληκτρολόγηση αυτής της γραμμής θα δημιουργήσει μια εργασία crontab για την εκτέλεση του αρχείου bash κάθε δευτερόλεπτο. Πατήσαμε Ctrl+ X για να αποθηκεύσουμε το αρχείο crontab και να το κλείσουμε για να προχωρήσουμε περαιτέρω.

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

Εάν το crontab μας θα λειτουργήσει καλά, τότε το σενάριο bash θα εκτελείται κάθε δευτερόλεπτο. Για να το επαληθεύσουμε, πρέπει να ελέγξουμε το αρχείο/var/log/syslog εκτελώντας την ακόλουθη εντολή στο τερματικό:

$ sudo grep –a Cron.sh / var / log / syslog

Αυτό το αρχείο θα περιέχει ένα αρχείο καταγραφής όλων των φορών που εκτελέστηκε το αρχείο bash, το οποίο σημαίνει ότι το crontab λειτουργεί όπως φαίνεται στην παρακάτω εικόνα:

συμπέρασμα

Στο σημερινό άρθρο, σας διδάξαμε τις δύο μεθόδους επαλήθευσης εάν το crontab λειτουργεί ή όχι. Η πρώτη μέθοδος θα πρέπει να είναι επαρκής για εσάς εάν σκοπεύετε να ελέγξετε μόνο την κατάσταση της υπηρεσίας crontab, ωστόσο, εάν θέλετε να δείτε εάν κάποια συγκεκριμένη εργασία crontab εκτελείται με επιτυχία ή όχι, τότε θα πρέπει να εκτελέσετε τη μέθοδο # 2. Αυτές οι μέθοδοι εκτελέστηκαν στο Linux Mint 20, ωστόσο, μπορείτε επίσης να χρησιμοποιήσετε οποιαδήποτε άλλη προτιμώμενη διανομή Linux.