torstai 6. maaliskuuta 2008

PHP ja Cron

Dynaamisten Web-sisältöjen toteutuksessa käytetään yhä enemmän palvelinpuolen skriptikieliä. HTML-kielen sekaan voidaan sijoittaa PHP- (tai ASP) -komentosarjoja, jotka suoritetaan palvelimella. Toiminnallisia ongelmia voi kuitenkin joskus aiheuttaa se, että PHP-komennot suoritetaan vain sivua ladattaessa. Sivun lataamisen ajastus cronin avulla voi tällöin ratkaista ongelman.

Tällä ohjeella voit ajastaa php-sivun latautumaan säännöllisesti, jos palvelimella on cron-ajastus sallittu:

Kirjaudu palvelimelle ja lisää esim. emacsia käyttäen kotihakemistoosi tiedosto, joka sisältää ohjeet ajastukseen. Kirjoita tiedostoon seuraavat komennot:

MAILTO="oma@osoite.fi"
20 12 * * * /path/to/wget --spider -q http://url.to/script.php


JOSSA:

1. Ensimmäinen rivi ei ole pakollinen. Jos haluat, että tieto ajastettujen komentojen suorituksesta lähetetään sähköpostiisi, kirjoita siihen oma osoitteesi.

2. Toisen rivin alkuun lisätään suorituksen ajankohta muodossa:

minuutit tunnit päivä kuukausi viikonpäivä

Esimerkin 20 12 * * * suorittaa komennon joka päivä klo 12.20. Jokerimerkkiä (*) käyttämällä voit jättää minkä tahansa kohdan avoimeksi. Viikonpäivät merkitään numeroilla siten, että nolla on sunnuntai. Jos haluat määritellä esim. useita päiviä tai viikonpäiviä, erotetaan arvot pilkulla ilman välilyöntejä.

3. Ajankohdan jälkeen määritellään suoritettavan ohjelman nimi sekä hakemistopolku, josta se löytyy palvelimella. Esimerkissä käytetään wget-ohjelmaa, jonka avulla voi ladata sisältöä web-palvelimilta. Voit etsiä wget-ohjelmaa palvelimeltasi komennolla which wget.

4. Parametrit --spider ja -q ovat valinnaisia. Edellinen parametri muuttaa suoritustapaa siten, että php-tiedosto ainostaan ladataan palvelimella, mutta sitä ei siirretä kotihakemistoosi. PHP:n toimivuuden kannaltahan tärkeintä on vain saada sivu ladattua, jotta palvelin suorittaa PHP-komennot. Jälkimmäinen parametri puolestaan suorittaa toiminnon hiljaisesti eli siitä ei lähetetä tietoja sähköpostiosoitteeseesi. -q-parametri kannattaakin testausvaiheessa poistaa komentosarjasta.

5. Lopuksi määritellään ladattavan sivun URL-osoite.


Muista painaa viimeisen rivin jälkeen enteriä. Tallenna tiedosto kotihakemistoosi vapaavalintaisella nimellä (esim. cronfile.txt).

Kirjoita sen jälkeen komentokehotteeseen crontab cronfile.txt, jonka jälkeen palvelin on ajastettu suorittamaan haluamasi toiminnon.

Voit katsoa ajastettuja toimintoja antamalla komennon crontab -l ja poistaa ajastuksen komennolla crontab -r.

Huom! Jos teet myöhemmin muutoksia ajastusohjeet sisältävään cronfile.txt -tiedostoon, muista aina sen jälkeen antaa crontab cronfile.txt -komento. Vasta tämän jälkeen palvelin ottaa muutokset huomioon.

Ei kommentteja:

Lähetä kommentti