Cron užduoties arba užduoties sukūrimas (ir ką daryti, jei ji neveikia)
Naudodami cron užduotį (DirectAdmin: Cron Jobs) galite automatiškai paleisti scenarijų nustatytu laiku, pavyzdžiui, kiekvieną naktį. Toliau rasite, kaip ją sukurti ir ką daryti, jei ji neveikia.
Cron užduočių taisyklės
- Naudojant Webhost One ir Webhost Two paketus, užduotis gali būti paleidžiama ne dažniau kaip kartą per 10 minučių, atsižvelgiant į visas Jūsų užduotis kartu.
- Naudojant Power Webhost paketus, užduotys gali būti paleidžiamos dažniau.
- Jei turite kelias cron užduotis, paskirstykite jas laike ir pasirinkite ramesnį laiką, pavyzdžiui, 03:17, o ne lygiai vidurnaktį.
- Sunkios cron užduotys, kurios ilgai apkrauna serverį, nėra leidžiamos. Tame pačiame serveryje veikia daug kitų svetainių. Esant reikalui, galime sustabdyti cron užduotį. Todėl Jūsų užduotys turėtų būti trumpos ir nevykdomos dažniau, nei būtina.
Cron užduoties sukūrimas
- Prisijunkite prie DirectAdmin ir skiltyje Advanced Features spustelėkite Cron Jobs.
- Spustelėkite Create Cron Job.
- Įveskite minutę, valandą, dieną, mėnesį ir savaitės dieną. Minutės lauke visada nurodykite skaičių, o ne žvaigždutę, kitaip užduotis bus vykdoma kas minutę.
- Komandos lauke įveskite visą kelią, pavyzdžiui:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Pakeiskite gebruiker savo DA vartotojo vardu. - Spustelėkite Create.

El. laiškas po kiekvienos cron užduoties
Cron užduoties išvestis siunčiama į numatytąją Jūsų paketo el. pašto paskyrą, žr. Numatytoji el. pašto paskyra DirectAdmin sistemoje. Išvestį taip pat galite siųsti į savo pasirinktą adresą, naudodami parinktį Send all cron output to e-mail. Jei nenorite gauti laiškų, kurdami užduotį pažymėkite Prevent Emails arba po komandos įrašykite:
>/dev/null 2>&1
Atkreipkite dėmesį naudodami PHP scenarijus
Scenarijus, paleistas per cron užduotį, nežino, po kokiu domenu jis veikia. $_SERVER['SERVER_NAME'] ir $_SERVER['DOCUMENT_ROOT'] yra tušti, todėl įtraukimas (include) su santykiniu keliu gali nepavykti. Todėl scenarijaus pradžioje įrašykite:
$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());
Cron užduotis neveikia?
Peržiūrėkite šiuos punktus vieną po kito:
- Peržiūrėkite išvestį. Laikinai pašalinkite
>/dev/null 2>&1ir patikrinkite laišką numatytojoje el. pašto paskyroje, arba nustatykite savo adresą. Ten dažniausiai tiksliai nurodoma, kas negerai. Išvestį taip pat galite rašyti į žurnalo failą, po komandos įrašydami>> /home/gebruiker/cron-log.txt 2>&1. - Patikrinkite kelią. Pranešimas Could not open input file reiškia, kad kelias iki scenarijaus yra neteisingas. Patikrinkite File Manager: kelias turi prasidėti
/home/gebruiker/domains/. - Patikrinkite PHP versiją. Naudojant
/usr/local/bin/php, užduotis naudoja tą pačią PHP versiją kaip ir Jūsų svetainė. Jei scenarijus veikia tik su kita versija, pakeiskite ją skiltyje Select PHP version. - Išbandykite komandą rankiniu būdu. Jei Jūsų pakete yra Terminal, įklijuokite komandą ten ir pažiūrėkite, kas vyksta, žr. SSH arba Terminal atidarymas DirectAdmin sistemoje. Jei Terminal nėra, atidarykite scenarijų naršyklėje, arba cron užduotyje iškvieskite jį naudodami
curl --silent https://www.jouwdomein.nl/taak.php. - Patikrinkite teises. Scenarijus turi būti skaitomas: failams turi būti nustatyta 644, o katalogams 755. Žr. Failų ir katalogų teisės (chmod).
- Patikrinkite laiką. Skiltyje Cron Job will be run: patikrinkite, ar užduotis vykdoma tada, kada manote. Jei minutės lauke yra žvaigždutė, užduotis vykdoma kas minutę ir gali būti sustabdyta.
- Patikrinkite paketo limitą. Jei užduotis vykdoma dažniau, nei leidžia Jūsų paketas, arba trunka per ilgai, ji bus nutraukta. Tokiu atveju paskirstykite darbą per kelis etapus.
date >> /home/gebruiker/cron-log.txt;Taip pat žr. DirectAdmin vadove: Jūsų paketo numatytoji el. pašto paskyra.
Išsamesnis paaiškinimas su ekrano nuotraukomis: Cron Jobs: automatinis užduočių vykdymas DirectAdmin vadove.
