Cronjobin tai ajastetun tehtävän luominen (ja mitä tehdä, jos se ei toimi)
Cron-tehtävän avulla (DirectAdminissa: Cron-tehtävät) voit ajaa skriptin automaattisesti tiettyinä aikoina, esimerkiksi joka yö. Alta löydät ohjeet sen luomiseen ja siihen, mitä tehdä, jos se ei toimi.
Cron-tehtävien säännöt
- Webhost One- ja Webhost Two -paketeissa tehtävä voi käynnistyä enintään kerran 10 minuutissa, kaikki tehtäväsi yhteenlaskettuna.
- Power Webhost -paketeissa tehtävät voivat ajaa useammin.
- Jaa useat cron-tehtävät eri ajankohtiin ja valitse hiljainen ajankohta, esimerkiksi 03:17 keskiyön sijaan.
- Raskaat cron-tehtävät, jotka kuormittavat palvelinta pitkään, eivät ole sallittuja. Samalla palvelimella toimii useita verkkosivustoja. Tarvittaessa pysäytämme cron-tehtävän. Pidä tehtäväsi siksi lyhyinä äläkä aja niitä useammin kuin tarpeellista.
Cron-tehtävän luominen
- Kirjaudu DirectAdminiin ja napsauta kohdassa Lisätoiminnot kohtaa Cron-tehtävät.
- Napsauta Luo cron-tehtävä.
- Täytä minuutti, tunti, päivä, kuukausi ja viikonpäivä. Täytä minuutti aina numerolla, älä tähdellä, muuten tehtävä ajetaan joka minuutti.
- Kirjoita komentoon koko polku, esimerkiksi:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Korvaa gebruiker DA-käyttäjätunnuksellasi. - Napsauta Luo.

Sähköposti jokaisen cron-tehtävän jälkeen
Cron-tehtävän tuloste lähetetään pakettisi oletussähköpostitiliin, katso Oletussähköpostitili DirectAdminissa. Voit lähettää tulosteen myös omaan osoitteeseesi valinnalla Lähetä kaikki cron-tulosteet sähköpostitse. Jos et halua sähköpostia, napsauta luomisen yhteydessä Estä sähköpostit tai lisää komennon perään:
>/dev/null 2>&1
Huomioitavaa PHP-skripteissä
Cron-tehtävästä ajettava skripti ei tiedä, minkä verkkotunnuksen alla se toimii. $_SERVER['SERVER_NAME'] ja $_SERVER['DOCUMENT_ROOT'] ovat tyhjiä, ja suhteellisella polulla tehty include voi epäonnistua. Lisää siksi skriptisi alkuun:
$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());
Eikö cron-tehtäväsi toimi?
Käy nämä kohdat läpi yksi kerrallaan:
- Lue tuloste. Poista
>/dev/null 2>&1väliaikaisesti ja tarkista oletussähköpostitilin viesti, tai aseta oma osoite. Siellä näkyy usein tarkalleen, mikä menee pieleen. Voit myös kirjoittaa tulosteen lokitiedostoon lisäämällä komennon perään>> /home/gebruiker/cron-log.txt 2>&1. - Tarkista polku. Ilmoitus Could not open input file tarkoittaa, että polku skriptiin ei ole oikein. Tarkista Tiedostonhallinnasta: polku alkaa muodossa
/home/gebruiker/domains/. - Tarkista PHP-versio. Komennolla
/usr/local/bin/phptehtävä käyttää samaa PHP-versiota kuin verkkosivustosi. Jos skriptisi toimii vain toisella versiolla, muuta se kohdassa Select PHP version. - Testaa komento käsin. Jos paketissasi on Terminal, liitä komento sinne ja katso, mitä tapahtuu, katso SSH:n tai Terminalin avaaminen DirectAdminissa. Ilman Terminalia avaa skripti selaimessasi, tai kutsu se cron-tehtävässä komennolla
curl --silent https://www.jouwdomein.nl/taak.php. - Tarkista oikeudet. Skriptin on oltava luettavissa: tiedostojen oikeuksien tulee olla 644 ja kansioiden 755. Katso Tiedostojen ja kansioiden oikeudet (chmod).
- Tarkista ajankohta. Katso kohdasta Cron-tehtävä suoritetaan:, ajetaanko tehtävä silloin, kun luulet. Jos minuutin kohdalla on tähti, tehtävä ajetaan joka minuutti ja se voidaan pysäyttää.
- Tarkista pakettirajoitus. Jos tehtävä ajetaan useammin kuin pakettisi sallii, tai se kestää liian kauan, se keskeytetään. Jaa työ silloin useampaan vaiheeseen.
date >> /home/gebruiker/cron-log.txt; ennen komentoasi.Katso myös DirectAdmin-käyttöoppaasta: Pakettisi oletussähköpostitili.
Laajempi selitys kuvakaappauksineen: Cron-tehtävät: tehtävien automaattinen ajaminen DirectAdmin-käyttöoppaassa.
