cron - δαίμονας για την εκτέλεση προγραμματισμένων εντολών (Vixie Cron)
ΣΥΝΤΑΞΗ
cron [-f] [-l] [-L loglevel] [-n fqdn] [-x debugflags]
cron [-N]
ΠΕΡΙΓΡΑΦΗ
Το cron εκτελείται απευθείας από το systemd(1) κατά την είσοδο σε λειτουργία πολλαπλών χρηστών.
ΕΠΙΛΟΓΕΣ
-f
Παραμείνετε σε λειτουργία προσκυρίου, μην εκτελείτε ως δαίμονας.
-l
Ενεργοποιήστε συμβατά ονόματα LSB για τα αρχεία /etc/cron.d. Αυτή η ρύθμιση, ωστόσο, δεν επηρεάζει την ανάλυση των αρχείων κάτω από τα /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ή /etc/cron.monthly.
-n fqdn
Συμπεριλάβετε το FQDN στο θέμα κατά την αποστολή μηνυμάτων. Από προεπιλογή, το cron θα συντομεύει το όνομα κεντρικού υπολογιστή.
-N
Εκτελέστε τις εργασίες cron Τώρα, αμέσως και εξέλθετε. Αυτή η επιλογή είναι χρήσιμη για την εκτέλεση δοκιμών.
-L loglevel
Ενημερώστε το cron σχετικά με το τι να καταγράφει σχετικά με τις εργασίες (τα σφάλματα καταγράφονται ανεξάρτητα από αυτήν την τιμή) ως το άθροισμα των ακόλουθων τιμών:
1 θα καταγράψει την έναρξη όλων των εργασιών cron
2 θα καταγράψει το τέλος όλων των εργασιών cron
4 θα καταγράψει όλες τις αποτυχημένες εργασίες (κατάσταση εξόδου != 0)
8 θα καταγράψει τον αριθμό διεργασίας όλων των εργασιών cron
Η προεπιλογή είναι η καταγραφή της έναρξης όλων των εργασιών (1). Η καταγραφή θα απενεργοποιηθεί εάν το loglevel οριστεί σε μηδέν (0). Μια τιμή δεκαπέντε (15) θα επιλέξει όλες τις επιλογές.
-x debugflags
Ενημερώστε το cron ώστε να είναι πιο κατανοητό και να εξάγει πληροφορίες εντοπισμού σφαλμάτων. το debugflags είναι το άθροισμα των ακόλουθων τιμών:
1 "ext": ...
2 "sch": ...
4 "proc": ...
8 "pars": ...
16 "load": ..
32 "misc": ...
64 "test": ...
128 "bit": ...
ΣΗΜΕΙΩΣΕΙΣ
Το cron αναζητά στον φάκελο spool του (/var/spool/cron/crontabs/) αρχεία crontab (τα οποία έχουν το όνομα των λογαριασμών στο /etc/passwd). Οι βρεθείσες crontab φορτώνονται στη μνήμη. Σημειώστε ότι τα crontab σε αυτόν τον κατάλογο δεν θα πρέπει να προσπελαστούν απευθείας - η εντολή [crontab]({filename}../../crontab)(1) θα πρέπει να χρησιμοποιηθεί για την πρόσβαση και την ενημέρωσή τους.
Το cron διαβάζει επίσης το /etc/crontab, το οποίο έχει ελαφρώς διαφορετική μορφή (δείτε crontab(5)). Στο Debian, το περιεχόμενο του /etc/crontab ορίζεται για την εκτέλεση προγραμμάτων κάτω από τα /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly και /etc/cron.monthly. Αυτή η διαμόρφωση είναι συγκεκριμένη για το Debian, δείτε την σημείωση κάτω από το DEBIAN SPECIFIC παρακάτω.
Επιπλέον, στο Debian, το cron διαβάζει τα αρχεία στον κατάλογο /etc/cron.d. Το cron αντιμετωπίζει τα αρχεία στο /etc/cron.d με τον ίδιο τρόπο όπως το αρχείο /etc/crontab (ακολουθούν τη συγκεκριμένη μορφή αυτού του αρχείου, δηλαδή περιλαμβάνουν το πεδίο χρήστη). Ωστόσο, είναι ανεξάρτητα από το /etc/crontab: δεν κληρονομούν, για παράδειγμα, τις ρυθμίσεις μεταβλητών περιβάλλοντος από αυτό. Αυτή η αλλαγή είναι συγκεκριμένη για το Debian, δείτε τη σημείωση κάτω από το DEBIAN SPECIFIC παρακάτω.
Όπως το /etc/crontab, τα αρχεία στον κατάλογο /etc/cron.d παρακολουθούνται για αλλαγές. Ο διαχειριστής του συστήματος μπορεί να δημιουργήσει εργασίες cron στο /etc/cron.d/ με ονόματα αρχείων όπως "local" ή "local-foo".
Το /etc/crontab και τα αρχεία στο /etc/cron.d πρέπει να ανήκουν στον χρήστη root και δεν πρέπει να είναι εγγράψιμα από άλλους χρήστες ή ομάδες. Σε αντίθεση με τον κατάλογο spool, τα αρχεία κάτω από το /etc/cron.d ή τα αρχεία κάτω από τα /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly και /etc/cron.monthly μπορούν επίσης να είναι συμβολικοί σύνδεσμοι, υπό την προϋπόθεση ότι τόσο ο συμβολικός σύνδεσμος όσο και το αρχείο στο οποίο δείχνει ανήκουν στον χρήστη root. Τα αρχεία κάτω από το /etc/cron.d δεν χρειάζεται να είναι εκτελέσιμα, ενώ τα αρχεία κάτω από τα /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly και /etc/cron.monthly πρέπει να είναι εκτελέσιμα, καθώς εκτελούνται από το run-parts (δείτε run-parts(8) για περισσότερες πληροφορίες).
Το cron ξυπνά κάθε λεπτό, εξετάζοντας όλα τα αποθηκευμένα crontab, ελέγχοντας κάθε εντολή για να δει αν πρέπει να εκτελεστεί στο τρέχον λεπτό. Κατά την εκτέλεση των εντολών, οποιαδήποτε έξοδος αποστέλλεται μέσω email στον ιδιοκτήτη του crontab (ή στον χρήστη που καθορίζεται στη μεταβλητή περιβάλλοντος MAILTO στο crontab, εάν υπάρχει) από τον ιδιοκτήτη του crontab (ή από τη διεύθυνση email που δίνεται στη μεταβλητή περιβάλλοντος MAILFROM στο crontab, εάν υπάρχει). Τα αντίγραφα των διεργασιών cron που εκτελούν αυτές τις διεργασίες έχουν το όνομά τους μετατραπεί σε κεφαλαία, όπως θα φανεί στο syslog και στην έξοδο [ps]({filename}../../ps)(1).
Επιπλέον, το cron ελέγχει κάθε λεπτό για να δει αν ο χρόνος τροποποίησης του καταλόγου spool (ή ο χρόνος τροποποίησης του αρχείου /etc/crontab) έχει αλλάξει και, εάν έχει, το cron θα εξετάσει στη συνέχεια τον χρόνο τροποποίησης όλων των crontab και θα επαναφορτώσει αυτά που έχουν αλλάξει. Έτσι, το cron δεν χρειάζεται να επανεκκινηθεί κάθε φορά που τροποποιείται ένα αρχείο crontab. Σημειώστε ότι η εντολή [crontab]({filename}../../crontab)(1) ενημερώνει τον χρόνο τροποποίησης του καταλόγου spool κάθε φορά που τροποποιεί ένα crontab.
Υπάρχουν ειδικές περιπτώσεις όταν η ώρα αλλάζει κατά λιγότερο από 3 ώρες, για παράδειγμα στην αρχή και στο τέλος της θερινής ώρας. Εάν η ώρα έχει μετακινηθεί προς τα εμπρός, οι εργασίες που θα εκτελούνταν κατά τη διάρκεια του χρόνου που παραλείφθηκε θα εκτελεστούν σύντομα μετά την αλλαγή. Αντίθετα, εάν η ώρα έχει μετακινηθεί προς τα πίσω κατά λιγότερο από 3 ώρες, οι εργασίες που εμπίπτουν στον επαναλαμβανόμενο χρόνο δεν θα εκτελεστούν ξανά.
Μόνο οι εργασίες που εκτελούνται σε μια συγκεκριμένη ώρα (και όχι καθορίζονται ως @hourly, ούτε με '\*' στον καθορισμό ώρας ή λεπτού) επηρεάζονται. Οι εργασίες που καθορίζονται με εναλλασσόμενους χαρακτήρες εκτελούνται με βάση τη νέα ώρα αμέσως.
Οι αλλαγές ώρας μεγαλύτερες από 3 ώρες θεωρούνται διορθώσεις της ώρας και η νέα ώρα χρησιμοποιείται αμέσως.
Το cron καταγράφει τις ενέργειές του στην εγκατάσταση syslog 'cron' και η καταγραφή μπορεί να ελεγχθεί χρησιμοποιώντας την τυπική εγκατάσταση syslogd(8).
ΠΕΡΙΒΑΛΛΟΝ
Εάν έχει διαμορφωθεί στο /etc/default/cron σε συστήματα Debian, οι ρυθμίσεις τοπικοποίησης του daemon cron μπορούν να διαχειριστούν μέσω της χρήσης του /etc/environment ή μέσω της χρήσης του /etc/default/locale, με τις τιμές από το τελευταίο να αντικαθιστούν τις τιμές από το πρώτο. Αυτά τα αρχεία διαβάζονται και θα χρησιμοποιηθούν για τη ρύθμιση των μεταβλητών περιβάλλοντος LANG, LC_ALL και LC_CTYPE. Αυτές οι μεταβλητές χρησιμοποιούνται στη συνέχεια για τον καθορισμό της κωδικοποίησης των email, η οποία έχει προεπιλογή 'C'.
Αυτό ΔΕΝ επηρεάζει το περιβάλλον των εργασιών που εκτελούνται μέσω του cron. Για περισσότερες πληροφορίες σχετικά με τον τρόπο τροποποίησης του περιβάλλοντος των εργασιών, συμβουλευτείτε το crontab(5).
Το daemon θα χρησιμοποιήσει, εάν υπάρχει, τον ορισμό από το /etc/localtime για τη ζώνη ώρας.
Το περιβάλλον μπορεί να επαναπροσδιοριστεί στις ορισμούς του crontab του χρήστη, αλλά το cron θα χειρίζεται μόνο εργασίες σε μία μόνο ζώνη ώρας.
ΕΙΔΙΚΟ ΓΙΑ ΤΟ DEBIAN
Το Debian εισάγει ορισμένες αλλαγές στο cron που δεν ήταν διαθέσιμες αρχικά. Οι σημαντικότερες αλλαγές που εισήχθησαν είναι:
Υποστήριξη για /etc/cron.{hourly,daily,weekly,monthly} μέσω /etc/crontab,
Υποστήριξη για /etc/cron.d (κατάλογος για προσθήκη crontab πακέτων),
Υποστήριξη PAM,
Υποστήριξη SELinux,
Υποστήριξη auditlog,
Αλλαγές/διορθώσεις που σχετίζονται με την ώρα, συμπεριλαμβανομένης της θερινής ώρας (DST),
SGID crontab(1) αντί για SUID root,
Ειδικές για το Debian τοποθεσίες αρχείων και εντολές,
Ειδική διαμόρφωση για το Debian (/etc/default/cron),
Αρκετές άλλες μικρότερες δυνατότητες και διορθώσεις.
Η υποστήριξη για /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly και /etc/cron.monthly παρέχεται στο Debian μέσω της προεπιλεγμένης ρύθμισης του αρχείου /etc/crontab (δείτε το παράδειγμα σε επίπεδο συστήματος στο crontab(5)). Το προεπιλεγμένο crontab σε επίπεδο συστήματος περιέχει τέσσερις εργασίες: εκτέλεση κάθε ώρα, κάθε μέρα, κάθε εβδομάδα και κάθε μήνα. Κάθε μία από αυτές τις εργασίες θα εκτελέσει το run-parts(8), παρέχοντας κάθε έναν από τους καταλόγους ως όρισμα. Αυτές οι εργασίες είναι απενεργοποιημένες εάν είναι εγκατεστημένο το anacron(8) (εκτός από την εργασία ανά ώρα) για να αποφευχθούν συγκρούσεις μεταξύ των δύο daemons.
Όπως περιγράφεται παραπάνω, τα αρχεία στους καταλόγους αυτούς πρέπει να περάσουν ορισμένους ελέγχους, συμπεριλαμβανομένων των ακόλουθων: να είναι εκτελέσιμα, να ανήκουν στον χρήστη root, να μην είναι εγγράψιμα από την ομάδα ή άλλους χρήστες και, εάν είναι συμβολικοί σύνδεσμοι, να δείχνουν σε αρχεία που ανήκουν στον χρήστη root. Επιπλέον, τα ονόματα των αρχείων πρέπει να συμμορφώνονται με τις απαιτήσεις ονοματολογίας του run-parts(8): πρέπει να αποτελούνται εξ ολοκλήρου από γράμματα, ψηφία και μπορούν να περιέχουν μόνο τα ειδικά σύμβολα υπογράμμισης ('_') και παύλας ('-'). Οποιοδήποτε αρχείο που δεν συμμορφώνεται με αυτές τις απαιτήσεις δεν θα εκτελεστεί από το run-parts(8). Για παράδειγμα, οποιοδήποτε αρχείο που περιέχει τελείες θα αγνοηθεί. Αυτό γίνεται για να αποτραπεί η εκτέλεση από το cron οποιωνδήποτε αρχείων που αφήνονται από το σύστημα διαχείρισης πακέτων του Debian κατά την επεξεργασία αρχείων στο /etc/cron.d/ ως αρχεία διαμόρφωσης (δηλαδή, αρχεία που τελειώνουν σε .dpkg-dist, .dpkg-orig, .dpkg-old και .dpkg-new).
Αυτή η δυνατότητα μπορεί να χρησιμοποιηθεί από τους διαχειριστές συστήματος και τα πακέτα για να συμπεριλάβουν εργασίες που θα εκτελούνται σε καθορισμένα διαστήματα. Τα αρχεία που δημιουργούνται από πακέτα σε αυτούς τους καταλόγους θα πρέπει να έχουν το όνομα του πακέτου που τα παρέχει.
Η υποστήριξη για το /etc/cron.d περιλαμβάνεται στο ίδιο το daemon cron, το οποίο χειρίζεται αυτόν τον κατάλογο ως το κοινόχρηστο crontab του συστήματος. Αυτός ο κατάλογος μπορεί να περιέχει οποιοδήποτε αρχείο που ορίζει εργασίες, ακολουθώντας τη μορφή που χρησιμοποιείται στο /etc/crontab, δηλαδή, σε αντίθεση με το crontab του χρήστη, αυτά τα αρχεία πρέπει να παρέχουν το όνομα χρήστη για την εκτέλεση της εργασίας στον ορισμό της εργασίας.
Τα αρχεία σε αυτόν τον κατάλογο πρέπει να ανήκουν στον χρήστη root, δεν χρειάζεται να είναι εκτελέσιμα (είναι αρχεία διαμόρφωσης, όπως το /etc/crontab) και πρέπει να συμμορφώνονται με την ίδια σύμβαση ονομασίας που χρησιμοποιείται από το run-parts(8): πρέπει να αποτελούνται αποκλειστικά από κεφαλαία και πεζά γράμματα, ψηφία, κάτω παύλες και τελείες. Αυτό σημαίνει ότι δεν μπορούν να περιέχουν τελείες. Εάν η επιλογή -l καθοριστεί στο cron (αυτή η επιλογή μπορεί να ρυθμιστεί μέσω του /etc/default/cron, δείτε παρακάτω), τότε πρέπει να συμμορφώνονται με την προδιαγραφή του χώρου ονομάτων LSB, ακριβώς όπως στην επιλογή --lsbsysinit στο run-parts(8).
Ο σκοπός αυτής της δυνατότητας είναι να επιτρέψει στα πακέτα που απαιτούν πιο λεπτομερή έλεγχο του προγραμματισμού τους από τους καταλόγους /etc/cron.{hourly,daily,weekly,monthly} να προσθέσουν ένα αρχείο crontab στο /etc/cron.d. Αυτά τα αρχεία θα πρέπει να έχουν το όνομα του πακέτου που τα παρέχει.
Επιπλέον, η προεπιλεγμένη διαμόρφωση του cron ελέγχεται από το /etc/default/cron, το οποίο διαβάζεται από το σενάριο init.d που εκκινεί το daemon cron. Αυτό το αρχείο καθορίζει εάν το cron θα διαβάσει τις μεταβλητές περιβάλλοντος του συστήματος και καθιστά δυνατή την προσθήκη πρόσθετων επιλογών στο πρόγραμμα cron πριν εκτελεστεί, είτε για να διαμορφωθεί η καταγραφή του είτε για να καθοριστεί ο τρόπος με τον οποίο θα αντιμετωπίζει τα αρχεία κάτω από το /etc/cron.d.
ΔΕΙΤΕ ΕΠΙΣΗΣ
crontab(1), crontab(5), run-parts(8)
ΣΥΓΓΡΑΦΕΙΣ
Paul Vixie <_> Έγραψε αυτή τη σελίδα man (1994).
Steve Greenland <_> Διατήρησε το πακέτο (1996-2005).
Javier Fernández-Sanguino Peña <_> Διατήρησε το πακέτο (2005-2014).
Christian Kastner <_> Διατήρησε το πακέτο (2010-2016).
Georges Khaznadar <_> Διατήρησε το πακέτο (2022-2024).
ΠΝΕΥΜΑΤΙΚΑ ΔΙΚΑΙΩΜΑΤΑ
Copyright © 1994 Paul Vixie
Διανέμεται ελεύθερα, εκτός από: μην αφαιρείτε το όνομά μου από την πηγή ή την τεκμηρίωση (μην αποκτήσετε εύσημα για τη δουλειά μου), σημειώστε τις αλλαγές σας (μην με ρίχνετε την ευθύνη για τα πιθανά σφάλματά σας), μην αλλάζετε ή αφαιρείτε αυτήν την ειδοποίηση. Μπορεί να πωληθεί εάν παρέχεται πηγαίος κώδικας που μπορεί να δημιουργηθεί στον αγοραστή. Δεν περιλαμβάνεται καμία εγγύηση, εκφρασμένη ή σιωπηρή, με αυτό το λογισμικό. η χρήση είναι με δική σας ευθύνη, η ευθύνη για τυχόν ζημίες (εάν υπάρχουν) σε οποιονδήποτε που προκύπτουν από τη χρήση αυτού του λογισμικού βαρύνει αποκλειστικά τον χρήστη.
Από το 1994, έγιναν πολλές τροποποιήσεις σε αυτήν τη σελίδα man, που δημιουργήθηκαν από τους προγραμματιστές του Debian, οι οποίοι συντηρούσαν το cron(TM). παραπάνω είναι μια σύντομη λίστα, περισσότερες πληροφορίες μπορούν να βρεθούν στο αρχείο /usr/share/doc/cron/copyright.