Εγχειρίδιο του FreeBSD
Προηγ | Κεφάλαιο 12 Ρύθμιση και Βελτιστοποίηση | Επόμενο

# 12.6 Ρυθμίζοντας Το Πρόγραμμα `cron`

Contributed by Tom Rhodes.

Ένα απο τα πιο χρήσιμα βοηθητικά προγράμματα στο FreeBSD είναι το cron(8). Το πρόγραμμα `cron` τρέχει στο παρασκήνιο και συνεχώς ελέγχει το αρχείο `/etc/crontab`. Το `cron` ελέγχει επίσης τον κατάλογο `/var/cron/tabs`, αναζητώντας καινούργια αρχεία `crontab`. Τα αρχεία `crontab` έχουν αποθηκευμένες πληροφορίες για συγκεκριμένες διαδικασίες τις οποίες το `cron` πρέπει να εκτελέσει σε συγκεκριμένο χρόνο.

Το `cron` χρησιμοποιεί δύο διαφορετικούς τύπους αρχείων ρυθμίσεων, το crontab του συστήματος και το crontab των χρηστών. Η μόνη διαφορά ανάμεσα στους δύο αυτούς τύπους είναι το έκτο πεδίο. Στο crontab του συστήματος, το έκτο πεδίο είναι το όνομα του χρήστη με του οποίου θα εκτελεστεί η εντολή. Αυτό δίνει την δυνατότητα στο crontab του συστήματος να εκτελεί εντολές σαν οποιοδήποτε χρήστης. Στο crontab των χρηστών, το έκτο πεδίο είναι η εντολή που πρέπει να εκτελεστεί, και όλες οι εντολές εκτελούνται στο όνομα του χρήστη που δημιούργησε το crontab; αυτό είναι ένα σημαντικό χαρακτηριστικό ασφαλείας.

> Σημείωση: Τα crontabs των χρηστών επιτρέπουν σε μεμονωμένους χρήστες να προγραμματίσουν εργρασίες χωρίς την ανάγκη `root` δικαιωμάτον. Οι εντολές μέσα στο crontab ενός χρήστη τρέχουν με τα δικαιώματα του χρήστη του οποίου ανήκει το crontab.

> Ο χρήστης `root` μπορεί να έχει ένα crontab χρήστη ακριβώς όπως κάθε χρήστης. Αυτό είναι διαφορετικό απο το `/etc/crontab` (το crontab του συστήματος). Λόγο του crontab του συστήματος, δεν υπάρχει συνήθως καμία ανάγκη για την δημιουργία ενός ξεχωριστού crontab για τον χρήστη `root`.

Ας ρίξουμε μια ματία στο αρχείο `/etc/crontab` (το crontab του συστήματος):

    # /etc/crontab - root's crontab for FreeBSD
    #
    # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
    #
    #
    SHELL=/bin/sh
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
    HOME=/var/log
    #
    #
    #minute	hour	mday	month	wday	who	command
    #
    #
    */5	*	*	*	*	root	/usr/libexec/atrun

  Όπως στα περισσότερα αρχεία ρυθμίσεων στο FreeBSD, ο χαρακτήρας `#` παριστάνει ένα σχόλιο. Ένα σχόλιο μπορεί να τοποθετηθεί μέσα στο αρχείο σαν υπενθύμιση για το τι πραγματοποιεί και γιατί μία ενέργεια. Τα σχόλια δεν μπορούν να είναι στην ίδια γραμμή με μία εντολή γιατί αλλιώς θα ερμηνευτούν σαν κομμάτι της εντολής; πρέπει να είναι σε μία νέα γραμμή. Οι κενές γραμμές αγνοούνται.
  Καταρχήν, πρέπει να καθοριστεί το περιβάλλον. Ο χαρακτήρας ίσον (`=`) χρησιμοποιείτε για να καθορίσει τις ρυθμίσεις του περιβάλλοντος, όπως σε αυτό το παράδειγμα που χρησιμοποιούνται οι μεταβλητές `SHELL`, `PATH`, και `HOME`. Αν η γραμμή του κέλυφους παραμεληθεί, το `cron` θα χρησιμοποιήσει την προεπιλεγμένη, οι οποία είναι η `sh`. Αν η μεταβλητή `PATH` παραμεληθεί, δεν θα χρησιμοποιηθεί προεπιλεγμένη και η τοποθεσίες των αρχείων θα πρέπει να καθοριστούν με ακρίβεια. Αν η `HOME` παραμεληθεί, το `cron` θα χρησιμοποιήσει τον κεντρικό κατάλογο των εκάστοτε χρηστών.
  Η γραμμή αυτή καθορίζει συνολικά επτά πεδία. Τα πεδία αυτά είναι τα `minute`, `hour`, `mday`, `month`, `wday`, `who`, και `command`. Αυτά είναι απο μόνα τους επεξηγηματικά. Το πεδίο `minute` είναι ο χρόνος σε λεπτά τον οποίον η εντολή θα εκτελεστεί. Το πεδίο `hour` είναι παρόμοιο με το πεδίο `minute`, απλά είναι σε ώρες. Το πεδίο `mday` καθορίζει την ημέρα του μήνα. Το πεδίο `month` είναι παρόμοιο με το πεδίο `hour` και το πεδίο `minute`, υποδεικνύοντας τον μήνα. Το πεδίο `wday` καθορίζει την ημέρα της εβδομάδας. Όλα αυτά τα πεδία πρέπει να έχουν αριθμητικές τιμές, και να ακολουθούν το είκοσι-τετράωρο ρολόι. Το πεδίο `who` είναι ιδιαίτερο, και υπάρχει μόνο μέσα στο αρχείο `/etc/crontab`. Το πεδίο αυτό καθορίζει σαν ποιός χρήστης θα τρέξει την εντολή. Όταν ένας χρήστης εγκαθιστά το `crontab` αρχείο του, δεν θα έχει το πεδίο αυτό διαθέσιμο. Τέλος, θα ακολουθήσει η επιλογή `command`. Αυτό είναι το τελευταίο πεδίο, έτσι και λογικά υποδεικνύει την εντολή που θα εκτελεστεί.
  Η τελευταία αυτή γραμμή θα καθορίσει τα μεγέθοι που συζητήθηκαν παραπάνω. Προσέξτε εδώ ότι έχουμε έναν ορισμό `*/5`, ακολουθούμενο απο αρκετούς χαρακτήρες `*`. Οι χαρακτήρες `*` σημαίνουν «πρώτο-τελευταίο», και μπορούν να ερμηνευθούν σαν κάθε φορά. Έτσι, κρίνοντας απο αυτή την γραμμή, είναι προφανές ότι η εντολή `atrun` επικαλείται απο τον χρήστη `root` κάθε πέντε λεπτά ανεξάρτητα απο την ημέρα και τον μήνα. Για περισσότερες πληροφορίες σχετικά με την εντολή `atrun`, κοιτάξτε την σελίδα βοηθείας atrun(8).

  Οι εντολές μπορούν να έχουν απεριόριστο αριθμό παραμέτρων, ωστόσο, οι εντολές με εκτεταμένο αριθμό γραμμών πρέπει να διασπαστούν με τον χαρακτήρα συνέχειας αντίθετης καθέτου «\».

Αυτές είναι οι βασικές ρυθμίσεις για κάθε αρχείο `crontab`, ωστόσο υπάρχει και κάτι διαφορετικό. Το πεδίο έξι, όπου και καθορίζουμε το όνομα χρήστη, υπάρχει μόνο στο αρχείο του συστήματος `/etc/crontab`. Το πεδίο αυτό πρέπει να παραλειφθεί για κάθε `crontab` αρχείο χρήστη.

## 12.6.1 Εγκαθιστώντας Ένα Crontab

> Σημαντικό: Δεν θα πρέπει να χρησιμοποιήσετε την διαδικασία που περιγράφεται εδώ για την διόρθωση/εγκατάσταση του crontab του συστήματος. Απλά χρησιμοποιήστε τον αγαπημένο σας κειμενογράφο: το `cron` θα εντοπίσει ότι το αρχείο έχει τροποποιηθεί και θα αρχίσει άμεσα να χρησιμοποιεί την ανανεωμένη έκδοση του. Δείτε αυτή την εγγραφή του FAQ για περισσότερες πληροφορίες.

Για να εγκαταστήσετε ένα νέο `crontab` χρήστη, πρώτα χρησιμοποιήστε τον αγαπημένο σας κειμενογράφο για να δημιουργήσετε ένα αρχείο με το απαιτούμενο τύπο, και τότε χρησιμοποιήστε το `crontab`. Η πιο κοινή χρήση του είναι:

    % crontab crontab-file

Στο παράδειγμα αυτό, το αρχείο `crontab-file` είναι το όνομα του αρχείου `crontab` που είχε δημιουργηθεί προηγουμένως.

Υπάρχει επίσης μία επιλογή για να απαριθμήσετε τα εγκατεστημένα αρχεία `crontab`: απλά εισάγετε την επιλογή `-l` στην εντολή `crontab` και ελέγξτε το αποτέλεσμα.

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

Αν αργότερα θέλετε να διαγράψετε το `crontab` αρχείο χρήστη τελείως, χρησιμοποιήστε την εντολή `crontab` μαζί με την επιλογή `-r`.

Προηγ | Αρχή | Επόμενο
Eκκινώντας Υπηρεσίες | Πάνω | Χρησιμοποιώντας Το Σύστημα rc Στο FreeBSD

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.