Cronjobin tai ajastetun tehtävän luominen (ja mitä tehdä, jos se ei suoritu)
Cron-tehtävällä (DirectAdminissa: Cron Jobs) ajat skriptin automaattisesti tiettyinä aikoina, esimerkiksi joka yö. Alta näet, miten luot tehtävän ja mitä teet, jos se ei toimi.
Cron-tehtävien säännöt
- Käynnistä tehtävä enintään kerran 10 minuutissa. Pyydämme tätä kaikilta, koska jaat palvelimen muiden verkkosivustojen kanssa.
- Ajoita useat cron-tehtävät eri aikoihin ja valitse rauhallinen ajankohta, kuten 03:17 tasan 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ä siis tehtäväsi lyhyinä äläkä aja niitä useammin kuin on tarpeen.
Cron-tehtävän luominen
- Kirjaudu DirectAdminiin ja napsauta kohdassa Advanced Features Cron Jobs.
- Napsauta Create Cron Job.
- Täytä minuutti, tunti, päivä, kuukausi ja viikonpäivä. Älä koskaan laita minuutin kohdalle pelkkää tähteä, muuten tehtävä ajetaan joka minuutti. Käytä numeroa tai esimerkiksi
*/15, jolloin tehtävä ajetaan 15 minuutin välein. - Kirjoita komennon kohdalle koko polku, esimerkiksi:
/usr/local/bin/php -q /home/gebruiker/domains/verkkotunnuksesi.fi/public_html/taak.php
Korvaa gebruiker DA-käyttäjätunnuksellasi. - Napsauta Create.

Sähköposti jokaisen cron-tehtävän jälkeen
Cron-tehtävän tuloste lähetetään paketin oletussähköpostitilille, katso Oletussähköpostitili DirectAdminissa. Voit myös lähettää tulosteen omaan osoitteeseesi valinnalla Send all Cron output to E-Mail. Jos et halua sähköpostia, napsauta tehtävää luodessasi Prevent E-Mail tai lisää komennon perään:
>/dev/null 2>&1
Huomioi 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/verkkotunnuksesi.fi/public_html'; $_SERVER['SERVER_NAME'] = 'verkkotunnuksesi.fi'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
WordPress: WP-Cron oikealla cron-tehtävällä
WordPressissä on oma ajastin, WP-Cron, esimerkiksi ajastettuja artikkeleita, päivitysten tarkistamista ja lisäosien tehtäviä varten. Se ei toimi kiinteinä aikoina vaan vain silloin, kun joku vierailee sivustollasi. Jos kävijöitä on vähän, tehtävät jäävät jälkeen, ja jos kävijöitä on paljon, jokainen käynti vie hieman lisäaikaa. Tavallisella cron-tehtävällä WP-Cron ajetaan kiinteinä aikoina.
- Lisää tiedostoon
wp-config.phprivin/* That's all, stop editing! */yläpuolelle:define( 'DISABLE_WP_CRON', true );
- Luo kohdassa Cron Jobs tehtävä, joka ajetaan esimerkiksi 15 minuutin välein: kirjoita minuutin kohdalle
*/15ja tunnin, päivän, kuukauden ja viikonpäivän kohdalle tähti. Komento:/usr/local/bin/php -q /home/gebruiker/domains/verkkotunnuksesi.fi/public_html/wp-cron.php >/dev/null 2>&1
Jos WordPress on alikansiossa, lisää se polkuun. - Tarkista seuraavana päivänä WordPressissä kohdassa Työkalut › Sivuston terveys, ettei siellä ole ilmoituksia myöhässä olevista ajastetuista tehtävistä.
Noudata tässäkin sääntöä enintään kerran 10 minuutissa. Useimmille sivustoille riittää 15 tai 30 minuutin väli.
Eikö cron-tehtäväsi toimi?
Käy nämä kohdat läpi yksi kerrallaan:
- Lue tuloste. Poista
>/dev/null 2>&1väliaikaisesti ja katso viesti oletussähköpostitililtä, tai aseta oma osoite. Siinä kerrotaan 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ä skriptin polku on väärä. Katso File Managerista: polku alkaa
/home/gebruiker/domains/. - Tarkista PHP-versio. Kun käytät polkua
/usr/local/bin/php, tehtävä käyttää samaa PHP-versiota kuin verkkosivustosi. Jos skriptisi toimii vain toisella versiolla, vaihda versio kohdassa Select PHP version. - Testaa komento käsin. Jos paketissasi on Terminal, liitä komento sinne ja katso, mitä tapahtuu, katso SSH-yhteys ja Terminal DirectAdminissa. Ilman Terminalia avaa skripti selaimessa tai kutsu sitä cron-tehtävässä komennolla
curl --silent https://www.verkkotunnuksesi.fi/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 Job will run:, ajetaanko tehtävä silloin, kun luulet. Jos minuutin kohdalla on tähti, tehtävä ajetaan joka minuutti. Se on liian usein.
- Tarkista, kauanko tehtävä kestää. Jos tehtävä kestää pitkään tai käynnistyy uudelleen ennen kuin edellinen on valmis, se voi jumittua tai saada pakettisi törmäämään rajoihinsa. Jaa työ silloin useampaan kierrokseen.
date >> /home/gebruiker/cron-log.txt; komentosi eteen.Katso myös DirectAdmin-oppaasta: Paketin oletussähköpostitili.
Laaja ohje kuvakaappauksineen: Cron Jobs: tehtävien ajaminen automaattisesti DirectAdmin-oppaassa.
Haluatko oppia lisää? Käy maksuton WordPress-kurssi, oppitunti 6.3 Kuvat, PHP ja muut nopeusparannukset.
