Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   cron - запуск php скрипта (http://forum.oszone.net/showthread.php?t=259586)

amohax 28-04-2013 18:08 2141203

cron - запуск php скрипта
 
Всем привет! Помогите настроить задание крон для запуски пхп скрипта каждые 10 мин.

Сам делаю так:
  • 1. Подключаюсь к серверу через SSH
  • 2. Ввожу команду crontab -e
  • 3. Пишу в начале файла:
  • Код:

    */10 * * * * /usr/local/bin/php -q /home/amohax/www/site1/public_html/wotevent/t.php > /dev/null 2>&1
  • 4. Сохраняю
  • 5. Ставлю через FAR на файл t.php атрибуты ххх ххх ххх т.е. полный доступ
  • 6. жду 10 мин.

= ничего не выполняется :(

При этом если в командную строку написать:
Код:

/usr/local/bin/php -q /home/amohax/www/site1/public_html/wotevent/t.php
то скрипт срабатывает нормально!

Подскажите в чем может быть дело?

AMDBulldozer 28-04-2013 18:15 2141208

Цитата:

Цитата amohax
Ввожу команду crontab -e »

Просто отредактируйте /etc/crontab, добавив строчку: "10 * * * * ..." (безо всякого "*/" в начале). Не забудьте перезапустить сервис cron или послать ему сигнал -HUP, чтобы он перечитал файл конфигурации (Вы можете сколько угодно править /etc/crontab, но уже запущенная копия демона об этом не знает).

amohax 28-04-2013 18:58 2141238

Цитата:

Цитата AMDBulldozer
Просто отредактируйте /etc/crontab, добавив строчку: "10 * * * * ..." (безо всякого "*/" в начале) »

Разве это не значит выполнение задания на 10-й минуте каждого часа?

Цитата:

Цитата AMDBulldozer
Не забудьте перезапустить сервис cron »

Пишет что у меня нет на это прав

А в начале файла надо писать что-то типа: "SHELL=/bin/sh/"?

AMDBulldozer 28-04-2013 19:08 2141243

Цитата:

Цитата amohax
Разве это не значит выполнение задания на 10-й минуте каждого часа? »

Да, извиняюсь, невнимательно прочитал вопрос (даже хуже - я, сам не пойму с чего, решил, что "выполнять каждые 10 минут" и "выполнять в 10 минут каждого часа" - это одно и то же :blush2:).
Цитата:

Цитата amohax
Пишет что у меня нет на это прав »

Так Вы не суперпользователем по ssh заходите? "sudo" в этой ситуации Вам не поможет (зависит от содержания файла /etc/sudoers)? Пароль суперпользователя не знаете (чтобы "su -" выполнить)?

Чтобы изменения вступили в силу, необходимо либо перезапустить cron, либо заставить его заново прочитать /etc/crontab.
Если возможности получить права на выполнение этих действий нет, можно ли перезагрузить сервер? (я сам знаю, что это варварское решение)
Цитата:

Цитата amohax
А в начале файла надо писать что-то типа: "SHELL=/bin/sh/" »

Вообще говоря, эта строчка там уже должна быть.

P.S. Добавил в свой /etc/crontab строчку "*/1 * * * * root /bin/echo `date` > /tmp/test". После посылки сигнала "killall -1 cron" строчка начала выполняться и исправно обновлять файл /tmp/test.

amohax 28-04-2013 19:19 2141248

Перезапустить не могу и перегрузить машину тоже и прав рута нет - я просто пользователь обычного хостинга.

Судя по логам крон видит что файлы обновились

Код:

Apr 28 19:06:56 dune crontab[55533]: (amohax) LIST (amohax)
Apr 28 19:13:09 dune crontab[56428]: (amohax) BEGIN EDIT (amohax)
Apr 28 19:13:42 dune crontab[56428]: (amohax) REPLACE (amohax)
Apr 28 19:13:42 dune crontab[56428]: (amohax) END EDIT (amohax)
Apr 28 19:14:00 dune /usr/sbin/cron[5720]: (amohax) RELOAD (tabs/amohax)


AMDBulldozer 28-04-2013 19:34 2141255

Тогда Вы правы, единственный выход - "crontab -e". Не забудьте записать первой строчкой файла "SHELL=/bin/sh" и, если не будете указывать второй строчкой PATH, то пишите все команды с абсолютными путями (начиная с корневой директории).

amohax 28-04-2013 20:01 2141267

Оказалось что после строчки задания обязательно должен стоять перевод строки. Иначе задание
игнорируется.

Простите за беспокойство и спасибо за помощь.


Время: 10:18.

Время: 10:18.
© OSzone.net 2001-