Skip to main content

Πώς να επεξεργαστείτε το αρχείο Crontab του Linux για να προγραμματίσετε εργασίες

How To Enable Guest Account in Windows 10 Tutorial | The Teacher (Ιούνιος 2026)

How To Enable Guest Account in Windows 10 Tutorial | The Teacher (Ιούνιος 2026)
Anonim

Ένας δαίμονας στο Linux κάλεσε cron εκτελεί διαδικασίες σε τακτά χρονικά διαστήματα. Ελέγχει ορισμένους φακέλους στο σύστημά σας ώστε τα σενάρια να εκτελούνται σε μια σειρά φακέλων, συμπεριλαμβανομένων των /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly και /etc/cron.monthly. Υπάρχει επίσης ένα αρχείο που ονομάζεται / etc / crontab.

Τοποθέτηση σεναρίων σε φακέλους Cron

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

Για παράδειγμα, ανοίξτε ένα παράθυρο τερματικού και εκτελέστε την ακόλουθη εντολή ls:

ls / etc / cron *

Θα δείτε τη λίστα των προγραμμάτων ή των σεναρίων που εκτελούνται ανά ώρα, καθημερινά, εβδομαδιαία και μηνιαία.

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

Εκεί έρχεται το αρχείο crontab.

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

Δικαιώματα

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

  • /etc/cron.allow
  • /etc/cron.deny

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

Ο χρήστης root μπορεί πάντα να επεξεργαστεί το αρχείο crontab. Μπορείτε είτε να χρησιμοποιήσετε την εντολή su για να μεταβείτε στον χρήστη root είτε στην εντολή sudo για να εκτελέσετε την εντολή crontab.

Επεξεργασία του αρχείου Crontab

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

Για να ελέγξετε αν έχετε ένα αρχείο crontab, εκτελέστε την ακόλουθη εντολή:

crontab -l

Εάν δεν έχετε αρχείο crontab το μήνυμα "no crontab for ", διαφορετικά θα εμφανιστεί το αρχείο crontab (αυτή η λειτουργία διαφέρει από σύστημα σε σύστημα, μερικές φορές δεν εμφανίζει τίποτα και άλλες φορές εμφανίζει το μήνυμα" Μην επεξεργαστείτε αυτό το αρχείο ").

Για να δημιουργήσετε ή να επεξεργαστείτε ένα αρχείο crontab εκτελέστε την ακόλουθη εντολή:

crontab -e

Το αρχείο που ανοίγει έχει πολλές πληροφορίες, αλλά το βασικό μέρος είναι το παράδειγμα λίγο πριν το τέλος του τμήματος σχολίων (τα σχόλια σημειώνονται με γραμμές που αρχίζουν με #).

# m h dom mon dow εντολή

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Υπάρχουν 6 στοιχεία πληροφοριών για να χωρέσουν σε κάθε γραμμή του αρχείου crontab:

  • Το λεπτό της ημέρας για την εκτέλεση της εντολής (m)
  • Η ώρα της ημέρας για την εκτέλεση της εντολής (h)
  • Την ημέρα του μήνα η εντολή είναι να τρέξει (dom)
  • Ο μήνας που τρέχει η εντολή (mon)
  • Την ημέρα της εβδομάδας η εντολή είναι να τρέξει (dow)
  • Η εντολή

Για κάθε στοιχείο (εκτός από την εντολή) μπορείτε να καθορίσετε έναν χαρακτήρα μπαλαντέρ. Κοιτάξτε το παρακάτω παράδειγμα γραμμής crontab:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Στα 30 λεπτά, 18 ώρες και κάθε μέρα, μήνα και ημέρα της εβδομάδας, αυτή η καταχώρηση crontab θα φερθεί και θα ανασύρει τον αρχικό κατάλογο στο φάκελο / var / backups.

Για να εκτελέσετε μια εντολή που τρέχει στα 30 λεπτά κάθε ώρα, εκτελέστε την ακόλουθη εντολή:

30 * * * * εντολή

Για να εκτελέσετε μια εντολή για να τρέξετε κάθε λεπτό μετά τις 6 μ.μ., εκτελέστε την ακόλουθη εντολή:

* 18 * * * εντολή

Επομένως, πρέπει να είστε προσεκτικοί σχετικά με τη ρύθμιση των εντολών crontab.

Για παράδειγμα:

* * * 1 * εντολή

Αυτή η εντολή θα εκτελείται κάθε λεπτό κάθε ώρας κάθε ημέρας κάθε εβδομάδας τον Ιανουάριο.

Για να εκτελέσετε μια εντολή στις 5 π.μ. την 1η Ιανουαρίου, θα κάνατε την ακόλουθη εντολή στο αρχείο crontab:

0 5 1 1 * εντολή

Πώς να αφαιρέσετε ένα αρχείο Crontab

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

Ωστόσο, αν θέλετε να καταργήσετε το αρχείο crontab του χρήστη, εκτελέστε την ακόλουθη εντολή:

crontab -r

Ένας ασφαλέστερος τρόπος για να γίνει αυτό είναι να εκτελέσετε την ακόλουθη εντολή:

crontab -i

Το λειτουργικό σύστημα ζητά την επαλήθευση προτού αφαιρέσει το αρχείο crontab.