Ροή

Οδηγός: Πως να εκτελείτε αυτόματες εργασίες στα Linux με το Crontab

techne

Administrator
Joined
27 May 2010
Μηνύματα
1,149
Βαθμολογία
17
Points
38
Website
www.eltube.gr
Με την έλευση των νέων τεχνολογιών, θέλουμε τα πάντα να είναι αυτοματοποιημένα, συμπεριλαμβανομένων των συστημάτων υπολογιστών μας. Για παράδειγμα, ως διαχειριστής συστήματος, μπορεί να θέλουμε το αντίγραφο ασφαλείας μας να εκτελείται κάθε βράδυ στις 2:00 π.μ. Τότε ποιος είναι ο σκοπός των υπολογιστών εάν πρέπει να ξυπνάμε καθημερινά στις 2:00 π.μ. και να εκτελούμε τις εντολές με μη αυτόματο τρόπο για να ξεκινήσουμε τη δημιουργία αντιγράφων ασφαλείας. Θα πρέπει να υπάρχει ένας τρόπος που να λέει στο σύστημα να εκτελεί αυτόματα ένα αντίγραφο ασφαλείας σε μια συγκεκριμένη στιγμή. Ευτυχώς, το Linux OS προσφέρει ένα βοηθητικό πρόγραμμα cron που επιτρέπει την αυτοματοποίηση εργασιών σε μια συγκεκριμένη περίοδο.

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

Σε αυτό το άρθρο, θα εξηγήσουμε με διάφορα παραδείγματα πως μπορείτε να επεξεργαστείτε και να χρησιμοποιήσετε το αρχείο crontab για να προγραμματίσετε εργασίες στο σύστημα Debian 10/11. Το Cron μπορεί να χρησιμοποιηθεί για την αυτοματοποίηση εργασιών στα ακόλουθα σενάρια:

  • Εκτέλεση αντιγράφων ασφαλείας χρονοδιαγράμματος,
  • Έλεγχος χώρου στο δίσκο σε συγκεκριμένο διάστημα,
  • Λειτουργία αυτόματης συντήρησης,
  • Περιοδική κατάργηση ανεπιθύμητων αρχείων,
  • Εκτέλεση διαγνωστικού δικτύου


Σύνταξη

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

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

Κάθε ένα από τα πεδία αντιστοιχεί στα ακόλουθα:

Λεπτό (0-59) Ωρα (0-24) Ημέρα_του_Μήνα (1-7) Μήνας του χρόνου (1-12) Ημέρα της εβδομάδας (0-6) command


Εγκατάσταση του Cron

Το Cron έρχεται προεγκατεστημένο στο Debian 10/11. Ωστόσο, εάν λείπει από το σύστημά σας, εκτελέστε την ακόλουθη εντολή για να το εγκαταστήσετε:

$ sudo apt install cron

Προβολή crontab

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

$ crontab -l

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

$ sudo crontab –u user -l

Επεξεργασία crontab

Για να επεξεργαστείτε το αρχείο crontab του τρέχοντος χρήστη:

$ crontab -e

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

$ sudo crontab -u user

Εάν επεξεργάζεστε το αρχείο crontab για πρώτη φορά, θα σας ζητηθεί να επιλέξετε έναν επεξεργαστή:
Συνιστούμε το nano (1.)

cron.png

Μόλις επιλέξετε τον επεξεργαστή, θα εμφανιστεί το ακόλουθο παράθυρο.

Για παράδειγμα, θέλετε να εκτελείτε ένα εφεδρικό σενάριο με το όνομα "backup.sh" που βρίσκεται στον κατάλογο εγγράφων καθημερινά στις 2:00 π.μ. Για να το κάνετε αυτό, θα χρειαστεί να προσθέσετε την ακόλουθη γραμμή στο αρχείο crontab:

0 2 * * * /Documents/backup.sh
cron1.png

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


Αφαιρέστε το crontab

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

$ crontab -r

Ας δούμε τώρα μια σειρά από παραδείγματα εργασιών cron σε μια μηχάνημα linux.

1. Εκτελέστε μια εργασία cron κάθε λεπτό

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

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

2. Εκτελέστε μια εργασία cron μετά από κάθε 10 λεπτά

Για να προγραμματίσετε μια εργασία cron για εκτέλεση μετά από κάθε 10 λεπτά, προσθέστε την ακόλουθη γραμμή στο αρχείο crontab.

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

3. Εκτελέστε μια εργασία cron σε συγκεκριμένους μήνες

Για να προγραμματίσετε μια εργασία cron για εκτέλεση σε συγκεκριμένους μήνες π.χ. Μάρτιος, Αύγουστος, Δεκέμβριος, προσθέστε την εργασία cron στο αρχείο crontab με τον ακόλουθο τρόπο:

* * * jan,may,aug * /path/to/script.sh

4. Εκτελέστε μια εργασία cron σε επιλεγμένες ημέρες

Εάν θέλετε η εργασία cron σας να εκτελείται σε επιλεγμένες ημέρες, ας υποθέσουμε την Κυριακή και την Παρασκευή στις 5 μ.μ., θα πρέπει να έχει την εξής μορφή.

0 17 * * sun,fri /path/to/script.sh

5. Εκτελέστε μια εργασία cron καθημερινά σε μια συγκεκριμένη ώρα

Για να προγραμματίσετε μια εργασία cron που θα εκτελείται καθημερινά σε μια συγκεκριμένη ώρα, ας πούμε στις 3 π.μ., προσθέστε αυτήν τη γραμμή στο αρχείο crontab σας.

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

6. Εκτελέστε μια εργασία cron σε μια συγκεκριμένη ημέρα

Για να προγραμματίσετε μια εργασία cron που θα εκτελεστεί σε μια συγκεκριμένη ημέρα, ας πούμε κάθε Κυριακή, προσθέστε αυτήν τη γραμμή στο αρχείο crontab σας.

0 0 * * SUN /path/to/script.sh
Η εργασία θα τρέξει στις 00:00 κάθε Κυριακή.

7. Εκτελέστε πολλαπλές εργασίες σε μία εργασία cron

Για να προγραμματίσετε πολλές εργασίες σε μία εργασία cron, προσθέστε όλα τα σενάρια στο αρχείο crontab διαχωρίζοντάς τα με ένα ερωτηματικό.

* * * * * /path/to/script1.sh; /path/to/script2.sh

8. Εκτελέστε μια εργασία cron κάθε μέρα

Για να προγραμματίσετε μια εργασία cron για εκτέλεση κάθε μέρα της εβδομάδας, δηλαδή από Δευτέρα έως Παρασκευή, θα χρειαστεί να προσθέσετε αυτήν τη γραμμή στο αρχείο crontab.

0 0 * * 1-5 /path/to/script.sh
Η εργασία θα τρέξει στις 00:00 κάθε εργάσιμη ημέρα.

9. Εκτελέστε ένα cron job δύο φορές την ημέρα

Για να προγραμματίσετε μια εργασία να τρέχει δύο φορές την ημέρα π.χ. στις 6 π.μ. και στις 3 μ.μ., θα χρειαστεί να προσθέσετε αυτήν τη γραμμή στο αρχείο crontab:

0 6,15 * * * /path/to/script.sh

10. Εκτελέστε μια cron job κάθε ώρα

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

0 * * * * /path/to/script.sh
Για παράδειγμα, εάν η τρέχουσα ώρα είναι 2 μ.μ., η εργασία θα εκτελεστεί στις 3:00 μ.μ., στις 4:00 μ.μ. και ούτω καθεξής.

11. Εκτελέστε μια εργασία cron μετά από κάθε 3 ώρες

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

0 */3 * * * /path/to/script.sh
Για παράδειγμα, εάν η τρέχουσα ώρα είναι 2 μ.μ., η εργασία θα εκτελεστεί στις 5:00 μ.μ., στις 8:00 μ.μ. και ούτω καθεξής.

12. Εκτελέστε cron job στις 4:00 μ.μ. την πρώτη κάθε μήνα

Για να προγραμματίσετε μια εργασία να εκτελείται την πρώτη ημέρα κάθε μήνα στις 4:00 μ.μ., θα πρέπει να προσθέσετε αυτήν τη γραμμή στο αρχείο crontab:

0 16 1 * * /path/to/script.sh
 
Last edited:
Top Bottom