συστήματα

Γνώση Υπολογιστών >> συστήματα >  >> Unix

Πώς εκτελείται περιοδικά μια εργασία στο σύστημα UNIX;

Υπάρχουν διάφοροι τρόποι για να εκτελέσετε μια δουλειά περιοδικά σε ένα σύστημα UNIX. Ακολουθεί μια κατανομή των πιο συνηθισμένων μεθόδων και των διαφορών τους:

1. crontab

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

* Πώς λειτουργεί:

* Δημιουργείτε ένα αρχείο crontab, συνήθως στον οικιακό σας κατάλογο (`crontab -e`), το οποίο περιέχει γραμμές με πληροφορίες προγραμματισμού και την εντολή να εκτελέσει.

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

* Μπορείτε να χρησιμοποιήσετε μπαλαντέρ (`*`, `` `,`-', `/`) για να αντιπροσωπεύουν τις σειρές τιμών για αυτά τα πεδία.

* Παράδειγμα:

`` `bash

# Εκτελέστε ένα σενάριο κάθε μέρα στις 3:00 π.μ.

0 3 * * * /-path/to/your/script.sh

# Εκτελέστε μια εντολή κάθε 5 λεπτά

*/5 * * * * echo "τρέχει κάθε 5 λεπτά"

`` `

* Πλεονεκτήματα:

* Ευέλικτες επιλογές προγραμματισμού.

* Απλό και καλά τεκμηριωμένο.

* Μπορεί να χρησιμοποιηθεί για μια μεγάλη ποικιλία καθηκόντων.

* μειονεκτήματα:

* Απαιτεί πρόσβαση ρίζας για να τροποποιήσει το Crontab σε όλο το σύστημα.

* Απαιτεί έναν δαίμονα Cron να τρέχει στο παρασκήνιο.

* Μπορεί να είναι δύσκολο να διαχειριστεί σύνθετα χρονοδιαγράμματα.

2. στην εντολή

* Σκοπός: Χρησιμοποιείται για τον προγραμματισμό των καθηκόντων για να εκτελεστεί σε μια συγκεκριμένη μελλοντική ώρα.

* Πώς λειτουργεί:

* Χρησιμοποιήστε την εντολή `at` με χρονική σήμανση ή σχετική ώρα (π.χ., αύριο στις 5:00 μ.μ.).

* Εισαγάγετε την εντολή ή το σενάριο που θέλετε να εκτελέσετε.

* Το σύστημα αποθηκεύει τη δουλειά και το εκτελεί κατά την καθορισμένη ώρα.

* Παράδειγμα:

`` `bash

# Εκτελέστε ένα σενάριο αύριο στις 10:00 π.μ.

Στις 10:00 π.μ. αύριο

`` `

* Πλεονεκτήματα:

* Εύκολο στη χρήση για εφάπαξ καθήκοντα.

* Δεν απαιτεί τη δημιουργία μιας καταχώρησης Crontab.

* μειονεκτήματα:

* Μόνο για μελλοντικές εκτελέσεις, όχι επαναλαμβανόμενες θέσεις εργασίας.

* Περιορισμένες επιλογές προγραμματισμού σε σύγκριση με το Crontab.

3. Χρονομετρητές συστήματος

* Σκοπός: Οι σύγχρονες διανομές Linux με βάση το σύστημα προσφέρουν μια εξελιγμένη προσέγγιση για τον προγραμματισμό των θέσεων εργασίας.

* Πώς λειτουργεί:

* Δημιουργείτε ένα αρχείο μονάδας υπηρεσίας (`/etc/systemd/system/your-job.timer`) με πληροφορίες προγραμματισμού.

* Η υπηρεσία «Systemd-Timerd» παρακολουθεί αυτές τις μονάδες χρονοδιακόπτη και ενεργοποιεί τις αντίστοιχες υπηρεσίες στους καθορισμένους χρόνους.

* Παράδειγμα:

`` `bash

[Μονάδα]

Περιγραφή =Εκτελέστε ένα σενάριο κάθε ώρα

Μετά από =network-online.target

[Μετρών την ώραν]

Oncalendar =*-*-*00:00:00

Onactivesec =3600

[Υπηρεσία]

Τύπος =απλός

Χρήστης =το όνομα του χρήστη σας

Execstart =/path/to/your/script.sh

`` `

* Πλεονεκτήματα:

* Ενσωματωμένο με το SystemD, προσφέροντας εκτεταμένα χαρακτηριστικά.

* Πιο ισχυρή και αποτελεσματική από την Crontab.

* Επιτρέπει ευέλικτες επιλογές προγραμματισμού, συμπεριλαμβανομένων των ζωνών χρόνου και του σχετικού προγραμματισμού.

* μειονεκτήματα:

* Απαιτεί εξοικείωση με τα αρχεία μονάδας SystemD.

* Δεν χρησιμοποιείται τόσο ευρέως ως Crontab, αλλά κερδίζει δημοτικότητα.

4. anacron

* Σκοπός: Χρησιμοποιείται για θέσεις εργασίας που πρέπει να τρέχουν περιοδικά, ακόμη και αν το σύστημα δεν εκτελείται στην προγραμματισμένη ώρα.

* Πώς λειτουργεί:

* `anacron` checks για θέσεις εργασίας προγραμματισμένες σε`/etc/anacrontab '.

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

* Παράδειγμα:

`` `bash

# Εκτελέστε ένα σενάριο κάθε 3 ημέρες

3 12 * * /path/to/your/script.sh

`` `

* Πλεονεκτήματα:

* Εξασφαλίζει τις εργασίες που εκτελούνται ακόμη και αν το σύστημα δεν είναι επάνω στην προγραμματισμένη ώρα.

* μειονεκτήματα:

* Λιγότερο ευέλικτος προγραμματισμός από το Crontab.

* Δεν είναι πάντα απαραίτητο εάν το σύστημα λειτουργεί με συνέπεια.

Επιλέγοντας τη σωστή μέθοδο:

* crontab: Για επαναλαμβανόμενες εργασίες με συγκεκριμένους χρόνους και διαστήματα.

* σε: Για εφάπαξ καθήκοντα σε μια συγκεκριμένη μελλοντική ώρα.

* χρονομετρητές συστήματος: Για σύγχρονα συστήματα με το SystemD, προσφέροντας προχωρημένες επιλογές προγραμματισμού.

* anacron: Για θέσεις εργασίας που πρέπει να τρέξουν ακόμη και αν το σύστημα δεν τρέχει στην προγραμματισμένη ώρα.

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα