Δημιουργία cronjob ή εργασίας (και τι να κάνετε αν δεν εκτελείται)
Με μια cronjob (στο DirectAdmin: Cron Jobs) μπορείτε να κάνετε ένα script να εκτελείται αυτόματα σε σταθερές ώρες, για παράδειγμα κάθε νύχτα. Παρακάτω διαβάζετε πώς δημιουργείτε μία και τι μπορείτε να κάνετε αν δεν λειτουργεί.
Κανόνες για cronjobs
- Στα πακέτα Webhost One και Webhost Two, μπορεί να ξεκινήσει το πολύ μία εργασία κάθε 10 λεπτά, για όλες τις εργασίες σας μαζί.
- Στα πακέτα Power Webhost, οι εργασίες μπορούν να εκτελούνται συχνότερα.
- Κατανείμετε τις πολλαπλές cronjobs στον χρόνο και επιλέξτε μια ήσυχη ώρα, όπως 03:17 αντί για ακριβώς τα μεσάνυχτα.
- Δεν επιτρέπονται βαριές cronjobs που επιβαρύνουν τον server για μεγάλο χρονικό διάστημα. Στον ίδιο server λειτουργούν περισσότερες ιστοσελίδες. Αν χρειαστεί, διακόπτουμε μια cronjob. Γι' αυτό, κρατήστε τις εργασίες σας σύντομες και μην τις εκτελείτε συχνότερα από όσο χρειάζεται.
Δημιουργία μίας cronjob
- Συνδεθείτε στο DirectAdmin και κάντε κλικ κάτω από το Advanced Features στο Cron Jobs.
- Κάντε κλικ στο Create Cron Job.
- Συμπληρώστε το λεπτό, την ώρα, την ημέρα, τον μήνα και την ημέρα της εβδομάδας. Συμπληρώνετε πάντα το λεπτό με έναν αριθμό, όχι με αστερίσκο, διαφορετικά η εργασία θα εκτελείται κάθε λεπτό.
- Στην εντολή, συμπληρώστε την πλήρη διαδρομή, για παράδειγμα:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Αντικαταστήστε το gebruiker με το όνομα χρήστη σας στο DA. - Κάντε κλικ στο Create.

Email μετά από κάθε cronjob
Το αποτέλεσμα μιας cronjob πηγαίνει στον προεπιλεγμένο λογαριασμό email του πακέτου σας, δείτε Ο προεπιλεγμένος λογαριασμός email στο DirectAdmin. Μπορείτε επίσης να στείλετε το αποτέλεσμα σε δική σας διεύθυνση με το Send All Cron Output To E-Mail. Αν δεν θέλετε email, κάντε κλικ κατά τη δημιουργία στο Prevent Emails, ή προσθέστε μετά την εντολή:
>/dev/null 2>&1
Προσοχή με scripts PHP
Ένα script που εκτελείται μέσω cronjob δεν γνωρίζει κάτω από ποιο domain εκτελείται. Οι τιμές $_SERVER['SERVER_NAME'] και $_SERVER['DOCUMENT_ROOT'] είναι κενές, και ένα include με σχετική διαδρομή μπορεί να αποτύχει. Γι' αυτό, προσθέστε στην αρχή του script σας:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
Η cronjob σας δεν λειτουργεί;
Ελέγξτε τα παρακάτω σημεία ένα προς ένα:
- Διαβάστε το αποτέλεσμα. Αφαιρέστε προσωρινά το
>/dev/null 2>&1και κοιτάξτε στο email στον προεπιλεγμένο λογαριασμό email, ή ορίστε δική σας διεύθυνση. Εκεί συχνά αναγράφεται ακριβώς τι πάει στραβά. Μπορείτε επίσης να γράψετε το αποτέλεσμα σε ένα αρχείο καταγραφής προσθέτοντας μετά την εντολή>> /home/gebruiker/cron-log.txt 2>&1. - Ελέγξτε τη διαδρομή. Το μήνυμα Could not open input file σημαίνει ότι η διαδρομή προς το script δεν είναι σωστή. Ελέγξτε στη Διαχείριση Αρχείων: η διαδρομή ξεκινάει με
/home/gebruiker/domains/. - Ελέγξτε την έκδοση PHP. Με το
/usr/local/bin/php, η εργασία χρησιμοποιεί την ίδια έκδοση PHP με την ιστοσελίδα σας. Αν το script σας λειτουργεί μόνο σε άλλη έκδοση, προσαρμόστε την στο Select PHP version. - Δοκιμάστε την εντολή με το χέρι. Αν έχετε πακέτο με Terminal, επικολλήστε την εντολή εκεί και δείτε τι συμβαίνει, δείτε Άνοιγμα SSH ή Terminal στο DirectAdmin. Χωρίς Terminal, ανοίξτε το script στο πρόγραμμα περιήγησής σας, ή καλέστε το στην cronjob μέσω
curl --silent https://www.jouwdomein.nl/taak.php. - Ελέγξτε τα δικαιώματα. Το script πρέπει να είναι αναγνώσιμο: τα αρχεία πρέπει να έχουν δικαιώματα 644 και οι φάκελοι 755. Δείτε Δικαιώματα αρχείων και φακέλων (chmod).
- Ελέγξτε τον χρόνο. Κοιτάξτε στο Cronjob is run: αν η εργασία εκτελείται όταν εσείς νομίζετε. Αν υπάρχει αστερίσκος στο λεπτό, τότε εκτελείται κάθε λεπτό και μπορεί να διακοπεί.
- Ελέγξτε το όριο του πακέτου. Αν η εργασία εκτελείται συχνότερα από όσο επιτρέπει το πακέτο σας, ή διαρκεί πολύ, τότε διακόπτεται. Κατανείμετε τότε την εργασία σε περισσότερους γύρους.
date >> /home/gebruiker/cron-log.txt; πριν από την εντολή σας.Δείτε επίσης στον οδηγό DirectAdmin: Ο προεπιλεγμένος λογαριασμός email του πακέτου σας.
Εκτενής εξήγηση με στιγμιότυπα οθόνης: Cron Jobs: αυτόματη εκτέλεση εργασιών στον οδηγό DirectAdmin.
