Script sigkekrimeni ora..

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Script sigkekrimeni ora..

Δημοσίευση από p_pan » 08 Μαρ 2008 02:35

hello... 8elo na ftiajo ena script to opoio na douleuei sigkekrimeni ora... sugkekrimena stis 12 to bradu.... jero pos na paro tin ora se mia metabliti alla auto pou den jero einai pos 8a proka8oriso tin timi tis ora pou 8elo na douleuei.. dld ta kritiria tis IF pou 8a xrisimopoihso...

kana help???
euxaristo..
Αγράματος...

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Script sigkekrimeni ora..

Δημοσίευση από Banavas » 08 Μαρ 2008 08:02

χρειάζεσε crontab. Αυτό λειτουργεί στο server και τη δεδομένη στιγμή που έχεις καθορίσει εκτελεί μία εντολή ή οποία μπορεί να είναι να εκτελεστεί κάποιο αρχείο.
Ψάξε στο control panel για crontab ή cronjob.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Script sigkekrimeni ora..

Δημοσίευση από AAT » 08 Μαρ 2008 13:56

nai apo oti xerw mono me cron mporeis....
Sinithos einai engatestimena sto cPanel...

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Script sigkekrimeni ora..

Δημοσίευση από p_pan » 08 Μαρ 2008 17:10

mipos jerei kaneis pou mporo na bro perisoteres plirofories??
to brika auto pou lete mesa sto control panel mou...
Αγράματος...

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Script sigkekrimeni ora..

Δημοσίευση από AAT » 08 Μαρ 2008 18:38

mporeis na breis plirofories sta:

Edo
Edo
Kai Edo

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3195
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Script sigkekrimeni ora..

Δημοσίευση από CyberCr33p » 09 Μαρ 2008 08:54

Με αυτό κάνεις τη δουλειά σου:

Κώδικας: Επιλογή όλων

0 0 * * * php /home/username/script.php

Περισσότερες πληροφορίες:
Θέμα: Εισαγωγή στον χρονοπρογραμματισμό
Ημερομηνία: 19/06/2000
Συγγραφέας: CyberCr33p

Εισαγωγή

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

Τι είναι το cron;

O cron επιτρέπει στους χρήστες του Unix να εκτελούν όποιες εντολές θέλουν ή κάποια script σε μια συγκεκριμένη ώρα που δηλώνουν. Συνήθως χρησιμοποιείται από τους sys admin για να κάνουν αυτόματα backups ή reboot στον server τους. Εγώ την χρησιμοποιώ για να ενημερώνω την database του locate με την εντολή updatedb, να κάνω backups, και να συνδέομαι στο Internet και να κατεβάζω τα mails.

Πώς να ξεκινήσω το cron;

Ο cron είναι ένας daemon, που σημαίνει ότι χρειάζεται να τρέξει μόνο μια φορά. Στην τυπική εγκατάσταση του linux ο cron ξεκινάει αυτόματα κατά το boot του υπολογιστή και έτσι δεν χρειάζεται να το κάνει αυτό ο χρήστης. Για να δείτε εάν έχει ξεκινήσει ο cron δώστε την παρακάτω εντολή:

root@coderz $ ps aux | grep crond
root 311 0.0 0.7 1284 112 ? S Dec24 0:00 crond
root 8606 4.0 2.6 1148 388 tty2 S 12:47 0:00 grep crond

Εάν δεν βγάλει τα παραπάνω τότε δεν έχει ξεκινήσει οπότε του δείνουμε την παρακάτω εντολή:

root@coderz # crond

Χρησιμοποιόντας το cron

Υπάρχουν τρεις βασικοί τρόποι για να χρησιμοποιήσουμε το cron:

(1) Στον κατάλογο /etc θα βρείς κάποιους υποκαταλόγους που ονομάζονται 'cron.hourly', 'cron.daily', 'cron.weekly' και 'cron.monthly'. Μέσα σε αυτούς μπορείς να βάλεις ένα script που θα εκτελείται κάθε ώρα, κάθε μέρα, κάθε βδομάδα ή κάθε μήνα ανάλογα με τον φάκελο. Αυτός είναι ο πιο απλός τρόπος αλλά δεν έχεις πολλές επιλογές.

(2) Ο δεύτερος τρόπος που προτιμώ είναι το αρχείο crontab στον κατάλογο /etc. Αυτό μοιάζει σαν αυτό:

root@coderz # cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 1 * * * root run-parts /etc/cron.daily
22 2 * * 0 root run-parts /etc/cron.weekly
42 3 1 * * root run-parts /etc/cron.monthly

Το πρώτο μέρος είναι εύκολο να κατανοηθεί:

SHELL είναι το shell που τρέχει ο cron.

MAILΤΟ είναι η ηλεκτρονική διεύθυνση στν οποία θα στέλνεται η έξοδος του προγράματος που εκτελείται.

PATH είναι οι κατάλογοι που έχουν μέσα τα αρχεία που χρησιμοποιούμαι πιο πολύ έτσι ώστε να μην χρειάζεται να ορίζουμε κάθε φορά την πλήρες διαδρομή. Π.χ. για να τρέξω το script lexicon.sh που βρίσκεται στο κατάλογο /home/cr33p μπορώ αντί να δώσω την διαδρομή /home/cr33p/lexicon.sh να συμπεριλάβω στο PATH τη διαδρομή /home/cr33p και έτσι να χρειάζεται να γράψω μόνο το lexicon.sh στο crontab.

Στο δεύτερο μέρος, που είναι λίγο πιο πολύπλοκο βλέπουμε τα εξής:

Στο πρώτο πεδίο έχουμε τα λεπτά που μπορούν να πάρουν τιμές από 0-59, στο δεύτερο είναι η ώρα που παίρνει τιμές από 0-23, στο τρίτο η ημέρα που παίρνει τιμές από 0-31 και στο τέταρτο ο μήνας που παίρνει τιμές από 0-12. Στο μήνα αντί για τη χρήση των αριθμών 0-12 μπορούμε να χρησιμοποιήσουμε τα τρία γράμματα που δηλώνουν τη συνοπτική γραφή του κάθε μήνα. Τέλος στο πέμπτο πεδίο είναι η ημέρα της εβδομάδας με επιτρεπόμενες τιμές 0-7. Όπως και ο μήνας έτσι και στη βδομάδα μπορούμε να χρησιμοποιήσουμε τα τρία γράμματα που δηλώνουν την συνοπτική γραφή των ημερών. Δεν παίζει ρόλο εάν είναι με μικρά η κεφαλαία τα τρία γράμματα του μήνα η της ημέρας.

Έτσι στον πιο πάνω πίνακα βλέπουμε τέσσερα διαφορετικά crontabs, εκ των οποίων το ένα εκτελείται σε ωριαία βάση, το δεύτερο σε ημερήσια βάση, το τρίτο κάθε εβδομάδα και το τέταρτο κάθε μήνα.

Ελέγχοντας την πρόσβαση στο cron

Ο cron έχει τη δυνατότητα να επιτρέπει ή να απαγορεύει σε χρήστες να τον χρησιμοποιούν. Αυτό γίνεται με τα αρχεά cron.allow και cron.deny που βρίσκονται στον κατάλογο /etc. Το cron.allow δεν υπάρχει προεπιλεγμένα και θα πρέπει να το δημιουργήσετε. Εάν καταχωρίσετε σε αυτό ένα χρήστη που υπάρχει και στο cron.deny τότε ο χρήστης έχει πρόσβαση στην crontab. Το cron.deny υπάρχει προεπιλεγμένα. Σε αυτό εισάγετε τα ονόματα χρηστών που δεν θέλετε να έχουν πρόσβαση στην υπηρεσία crontab.

(3) Ο τρίτος τρόπος είναι με τη χρήση των εντολών at. Η at δεν έχει σχέση τόσο με το cron αφού είναι ξεχωριστός daemon που μας επιτρέπει να χρονοπρογραμματίζουμε. Αυτός ο τρόπος είναι καλύτερος για εντολές που θα εκτελεστούν μια μόνο φορά. Η at γενικά είναι πιο πολύπλοκη από τους άλλους δύο τρόπους και γι' αυτό αποφεύγεται από τους άπειρους χρήστες και πολλούς διαχειριστές συστημάτων.

Υπάρχουν τέσσερις εντολές at:

at: Εκτελεί εντολές μια συγκεκριμένη ώρα.

atq: Αναφέρει τις εργασίες που δεν έχουν γίνει ακόμα (εάν είσαι root τότε αναφέρει τις εργασίες όλων των χρηστών).

atrm: Καταργεί τις εργασίες at.

batch: Εκτελεί εντολές όταν το επιτρέπουν τα επίπεδα φορτίου του συστήματος.

Για να κάνω reboot στον υπολογιστή μου σε τέσσερις ώρες δείνω την εντολή:

echo shutdown -r now | at now + 4 hours

Για να επιτρέψετε η για να απαγορεύσετε την πρόσβαση στην υπηρεσία εντολής at θα χρησιμοποιήσετε τα αρχεία at.allow και at.deny που βρίσκονται στον κατάλογο /etc ακριβώς με τον ίδιο τρόπο με την crontab.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες