Създаване на cron задача (и какво да направите, ако не се изпълнява)
С помощта на cron job (в DirectAdmin: Cron Jobs) можете да накарате скрипт да се изпълнява автоматично в определени часове, например всяка нощ. По-долу ще намерите информация как да създадете такъв и какво да направите, ако не работи.
Правила за cron jobs
- При Webhost One и Webhost Two дадена задача може да стартира най-много веднъж на 10 минути, за всички Ваши задачи общо.
- При пакетите Power Webhost задачите могат да се изпълняват по-често.
- Разпределете няколко cron jobs във времето и изберете спокоен час, например 03:17 вместо точно в полунощ.
- Тежки cron jobs, които натоварват сървъра продължително време, не са позволени. На един и същ сървър работят повече уебсайтове. При необходимост спираме даден cron job. Затова поддържайте задачите си кратки и не ги изпълнявайте по-често от необходимото.
Създаване на cron job
- Влезте в DirectAdmin и под Advanced Features кликнете върху Cron Jobs.
- Кликнете върху Create Cron Job.
- Попълнете минутата, часа, деня, месеца и деня от седмицата. Винаги въвеждайте минутата като число, не звездичка, в противен случай задачата ще се изпълнява всяка минута.
- В полето за командата въведете пълния път, например:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Заменете gebruiker с Вашето DA потребителско име. - Кликнете върху Create.

Имейл след всяка cron job
Резултатът от cron job се изпраща на стандартния имейл акаунт на Вашия пакет, вижте Стандартният имейл акаунт в DirectAdmin. Можете да изпратите резултата и на собствен адрес чрез Send all cron output to e-mail. Ако не желаете имейли, кликнете при създаването върху Prevent e-mails, или поставете след командата:
>/dev/null 2>&1
Внимавайте при PHP скриптове
Скрипт, който се изпълнява чрез cron job, не знае под кой домейн работи. $_SERVER['SERVER_NAME'] и $_SERVER['DOCUMENT_ROOT'] са празни, а include с относителен път може да се провали. Затова поставете в началото на скрипта си:
$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 job не работи?
Прегледайте следните точки една по една:
- Прочетете резултата. Премахнете временно
>/dev/null 2>&1и проверете имейла в стандартния имейл акаунт, или задайте собствен адрес. Там обикновено пише точно какво не работи. Можете също да запишете резултата в лог файл, като поставите след командата>> /home/gebruiker/cron-log.txt 2>&1. - Проверете пътя. Съобщението Could not open input file означава, че пътят към скрипта не е верен. Проверете в File Manager: пътят започва с
/home/gebruiker/domains/. - Проверете версията на PHP. С
/usr/local/bin/phpзадачата използва същата версия на PHP като Вашия уебсайт. Ако скриптът Ви работи само с друга версия, променете я в Select PHP version. - Тествайте командата ръчно. Ако имате пакет с Terminal, поставете командата там и вижте какво се случва, вижте Отваряне на SSH или Terminal в DirectAdmin. Без Terminal отворете скрипта в браузъра си, или го извикайте в cron job чрез
curl --silent https://www.jouwdomein.nl/taak.php. - Проверете правата. Скриптът трябва да е четим: файловете трябва да са на 644, а папките на 755. Вижте Права на файлове и папки (chmod).
- Проверете часа. Погледнете при Тази cron job ще се изпълнява: дали задачата се изпълнява, когато очаквате. Ако има звездичка при минутата, тя се изпълнява всяка минута и може да бъде спряна.
- Проверете лимита на пакета. Ако задачата се изпълнява по-често от позволеното за пакета Ви, или продължава твърде дълго, тя се прекратява. В такъв случай разпределете работата на няколко етапа.
date >> /home/gebruiker/cron-log.txt; преди командата си.Вижте също в ръководството за DirectAdmin: Стандартният имейл акаунт на Вашия пакет.
Подробно обяснение със скрийншотове: Cron Jobs: автоматично изпълнение на задачи в ръководството за DirectAdmin.
