Page 1 of 1

Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 12:07 am
by wtfowned
Простейшая задача, описанная миллионы раз - не получается.
Перечитал форум весь, не могу понять в чем беда.

Задача - перейти в папку, и запустить скрипт находясь в ней.

Права на скрипт заданы для admin , также chmod +x добавлен. Задание cron добавляю в визуальной панели от пользователя Admin.

Пробовал варианты:

Code: Select all

cd /home/scripts/gwm && php -f sitemap_status.php

Code: Select all

cd /home/scripts/gwm && php -q sitemap_status.php

Code: Select all

cd /home/scripts/gwm && /usr/bin/php sitemap_status.php

Code: Select all

cd /home/scripts/gwm && /usr/bin/php -q sitemap_status.php

Code: Select all

cd /home/scripts/gwm && sudo php -q sitemap_status.php

Code: Select all

cd /home/scripts/gwm && sudo php -f sitemap_status.php

Code: Select all

cd /home/scripts/gwm && sudo php -q ./sitemap_status.php

Code: Select all

sudo -u admin cd /home/scripts/gwm && sudo -u admin php -q -f sitemap_status.php
Само собой, что по ssh любая из команд отрабатывает нормально, как и сам скрипт.

Логи syslog ничего не говорят

Code: Select all

Nov 27 00:36:01 159 CRON[21437]: (admin) CMD (cd /home/scripts/gwm && php -f sitemap_status.php)
Nov 27 00:37:01 159 CRON[21799]: (admin) CMD (cd /home/scripts/gwm && php -f sitemap_status.php)
Nov 27 00:38:02 159 CRON[21976]: (admin) CMD (cd /home/scripts/gwm && php -f sitemap_status.php)
Итак, спустя почти 1.5 часа, удалось...элементарная же задача, почему не написать в одном месте HELP или где-нибудь вообще на видном месте что нужно ОБЯЗАТЕЛЬНО указывать логин пользователя, а не просто sudo?

Удалось командой

Code: Select all

cd /home/scripts/gwm && sudo -u admin php -q -f sitemap_status.php

Re: Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 12:29 am
by imperio
А если так

Code: Select all

/usr/bin/php /home/scripts/gwm/sitemap_status.php
Путь до крон скрипта подправьте самостоятельно

Re: Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 12:33 am
by wtfowned
imperio wrote:
Tue Nov 27, 2018 12:29 am
А если так

Code: Select all

/usr/bin/php /home/scripts/gwm/sitemap_status.php
Путь до крон скрипта подправьте самостоятельно
Тогда скрипт запускается из / , в нем все пути относительные, там composer подключается и запуск других библиотек, все пути относительно папки запуска выстроены.

Просьба, добавьте пожалуйста в HELP пару строк как запускать, а то каждый раз мучения. Помню с год назад тоже мучался перечитывая весь форум, собственно сейчас только и получилось "так быстро" благодаря тому что сохранил себе в Evernote рецепт, тогда видимо потратил гораздо больше времени.

Re: Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 9:35 am
by grayfolk
wtfowned wrote:
Tue Nov 27, 2018 12:33 am
Тогда скрипт запускается из / , в нем все пути относительные, там composer подключается и запуск других библиотек, все пути относительно папки запуска выстроены.
http://php.net/manual/ru/function.chdir.php

Ну и константы, по типу __DIR__ в помощь.

Re: Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 2:13 pm
by wtfowned
grayfolk wrote:
Tue Nov 27, 2018 9:35 am
wtfowned wrote:
Tue Nov 27, 2018 12:33 am
Тогда скрипт запускается из / , в нем все пути относительные, там composer подключается и запуск других библиотек, все пути относительно папки запуска выстроены.
http://php.net/manual/ru/function.chdir.php

Ну и константы, по типу __DIR__ в помощь.
Спасибо, знаю. Речь то не об этом здесь. А о том что при запуске php скрипта надо указывать явно sudo admin , иначе ничего не запускается.

Re: Запуск скрипта PHP по Cron

Posted: Tue Nov 27, 2018 2:26 pm
by grayfolk
wtfowned wrote:
Tue Nov 27, 2018 2:13 pm
А о том что при запуске php скрипта надо указывать явно sudo admin , иначе ничего не запускается.
Ни разу за 3+ лет пользования Вестой, не указывал. Все отлично работает, как сказал imperio:
imperio wrote:
Tue Nov 27, 2018 12:29 am
А если так

Code: Select all

/usr/bin/php /home/scripts/gwm/sitemap_status.php
Путь до крон скрипта подправьте самостоятельно
Зачем указывать sudo admin, если крон-таск и так из-под админа добавлен и под ним же запускается?