Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: crontab (запуск php скрипта)  (Прочитано 6021 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
crontab (запуск php скрипта)
« : 26 Сентября 2009, 13:05:57 »
Пытаюсь запустить online.php с помощью cron`a.
Пишу crontab -e
*/1 * * * * root /usr/bin/php5 /var/online.php & echo `date` >> /tmp/cron-online.log
В /tmp/cron-online.log - запись происходит.НО online.php берет информацию из mySQL,а потом ее должен записать в файлик.Из которого информация о онлайне на сервере выводится на сайте.Чего не происходит.
Пробую запустить руками в терминале ./online.php - отлично запускает.
Не понимаю где смотреть ошибки или логи.Linux пользуюсь мало.Опыта нет - отсюда и вопросы.

П.С.
Права на файлы 777.
« Последнее редактирование: 26 Сентября 2009, 13:07:42 от poiuty »

Оффлайн SureGOOD

  • Активист
  • *
  • Сообщений: 724
  • suregood.ru
    • Просмотр профиля
    • suregood.ru
Re: crontab (запуск php скрипта)
« Ответ #1 : 26 Сентября 2009, 13:22:59 »
а на папку /var тоже есть права на запись?там лучше 777 сделать...а лучше создать виртуальный хост и там играть, ибо вешать на /var 777 не то, чтобы отлично...просто насколько я знаю, крон запускает не от твоего юзера, а права на запись видим только у рута и твоего пользователя

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: crontab (запуск php скрипта)
« Ответ #2 : 26 Сентября 2009, 13:36:01 »
Выставил на все 777.
Сейчас посмотрим... - не помогло.

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: crontab (запуск php скрипта)
« Ответ #3 : 26 Сентября 2009, 13:41:38 »
man crontab
Вызов crontab -e делает запись в кронтаб текущего юзера. Указание юзера (root) тут бессмыслено.. И делайте лучше вызов из кронтаба скрипта, который уже делает все операции.

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: crontab (запуск php скрипта)
« Ответ #4 : 26 Сентября 2009, 13:44:41 »
Текущий юзер - root.
П.С.
Скрипт online.php

<?
$mysql = mysql_connect("localhost","user","pass");
mysql_query("USE `base`");
$res = mysql_query("SELECT count(*) FROM `char` WHERE `online` = 1",$mysql);
$count = mysql_fetch_array($res);
$f = fopen("/home/webmaster/www/realro.ru/etc/online.txt","w+");
fputs($f,$count[0]);
?>


$f = fopen("/home/webmaster/www/realro.ru/etc/online.txt","w+");  - это собственно и не происходит

вызов из кронтаба скрипта - как это сделать?

Пользователь решил продолжить мысль 26 Сентября 2009, 13:46:57:
Нашел  /etc/cron.d/php5

В нем:

# Look for and purge old sessions every 30 minutes
09,39 *     * * *     root   [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ] && find /var/lib/php5/ -type f -cmin +$(/usr/lib/php5/maxlifetime) -print0 | xargs -r -0 rm

- возможно стоит здесь прописывать?
« Последнее редактирование: 26 Сентября 2009, 13:46:57 от poiuty »

Оффлайн SureGOOD

  • Активист
  • *
  • Сообщений: 724
  • suregood.ru
    • Просмотр профиля
    • suregood.ru
Re: crontab (запуск php скрипта)
« Ответ #5 : 26 Сентября 2009, 14:25:15 »
$f = fopen("/home/webmaster/www/realro.ru/etc/online.txt","w+");  - это собственно и не происходит
а вы уверены, что остальное у вас проходит?
попробуйте какой нибудь простой код
<?php
file_put_contents('/home/user/1.txt','blablabla');
?>

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: crontab (запуск php скрипта)
« Ответ #6 : 26 Сентября 2009, 15:15:13 »
Да. ведь есть я запускаю скрипт через терминал - то он работает.
Вопрос - почему когда крон его запускает он не работает?

Оффлайн SureGOOD

  • Активист
  • *
  • Сообщений: 724
  • suregood.ru
    • Просмотр профиля
    • suregood.ru
Re: crontab (запуск php скрипта)
« Ответ #7 : 26 Сентября 2009, 15:23:34 »
хм...хз...когда впервые столкнулся с кроном - надо было на удаленном серваке запускать php скрипт, я не учел относительность пути и права доступа к папкам\файлам...но ты говоришь, что все норм...ты бы все таки попробовал пример попроще через крон запускать...если файл создастся норм - значит ошибка в коде, если нет - внешняя проблема

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: crontab (запуск php скрипта)
« Ответ #8 : 26 Сентября 2009, 15:25:21 »
Пасиб за ответы. Вечером продолжу разбираться.

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: crontab (запуск php скрипта)
« Ответ #9 : 26 Сентября 2009, 15:48:48 »
Текущий юзер - root.
П.С.
Скрипт online.php

Ещё раз, man crontab! Вызов "crontab -e" делает запись в кронтаб юзера, где указание юзера не делается, следовательно, ты пытаешься через кронтаб выполнить две команды:
root /usr/bin/php5 /var/online.php &и
echo `date` >> /tmp/cron-online.logРазумеется, программы root в системе нет и эта команда не выполняется. Вторая команда выполняется успешно.

Оффлайн SureGOOD

  • Активист
  • *
  • Сообщений: 724
  • suregood.ru
    • Просмотр профиля
    • suregood.ru
Re: crontab (запуск php скрипта)
« Ответ #10 : 26 Сентября 2009, 15:51:14 »
ооо...вот как все...

Оффлайн Frank

  • Старожил
  • *
  • Сообщений: 1799
  • Профессиональный любитель
    • Просмотр профиля
    • Народный форум Николаева
Re: crontab (запуск php скрипта)
« Ответ #11 : 26 Сентября 2009, 15:57:08 »
ооо...вот как все...
Внимательней просто надо быть! Шапка файла имеет подсказку по заполнению:
# m h  dom mon dow   commandНигде нет "user", в отличии от системного кронтаба, с шапкой:
# m h dom mon dow user  command

Оффлайн poiuty

  • Автор темы
  • Новичок
  • *
  • Сообщений: 7
    • Просмотр профиля
Re: crontab (запуск php скрипта)
« Ответ #12 : 27 Сентября 2009, 12:27:47 »
Сделали.
Прописали в /etc/crontab

 

Страница сгенерирована за 0.029 секунд. Запросов: 24.