Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Автоматический запуск скрипта в указанное время
Форумы портала PHP.SU » PHP » Программирование на PHP » Автоматический запуск скрипта в указанное время

Страниц (1): [1]
 

1. dembi - 16 Декабря, 2009 - 13:24:45 - перейти к сообщению
Привет Всем!

У меня такой вопрос. Можно ли реализовать это с помощью PHP.

Задача следующая.

Нужно чтобы автоматически раз в месяц в определенное время, запускался скрипт, который будет делать выборку из БД.
Результат сохранять в файл.
Затем формировать письмо и отправлять с вложенным файлом на указанный email.

Скрипт с запросом я напишу.
Функцию с формированием письма с вложенным файлом думаю сделаю.

Как сделать, так чтобы – этот скрипт запускался автоматически в указанное время.

Заранее спасибо за советы.
2. valenok - 16 Декабря, 2009 - 13:47:18 - перейти к сообщению
google / wikipedia -> cron
3. dembi - 16 Декабря, 2009 - 13:56:44 - перейти к сообщению
Я понимаю, что нужно с помощью крона задать время запуска.
Прошу прощения, но ничего подобного для автозапуска не делал еще.

К примеру. Есть скрипт php.script:



Я делаю его запускающимся:

chmod u+x php.script

пробую запустить и получаю ошибку:

    ./php.script
    ./php.script: line 1: ?php: Нет такого файла или каталога test
    ./php.script: line 3: syntax error near unexpected token `newline'
    ./php.script: line 3: `?>'
4. Hunter - 16 Декабря, 2009 - 15:05:43 - перейти к сообщению
то что тебя интересует называется планировщиком. Большинство провайдеров предоставляет такие возможности и как правило они уже включены в твой тариф оплаты хостинга. Для этого дело предоставляется интуитивно понятный интерфейс. Уточняй у хостеров.
что касается реализации всего этого средствами php - конечно можно, но тут очень много подводных камней:
1. запуск скрипта зависит от обращения к нему, т.е. кто то должен к нему обратиться (зайти на сайт например)
2.невозможность точного прогноза посещаемости твоего ресурса обеспечит тебе следующее:
3.черезмерная нагрузка на сервер 9если вдруг произойдет резкий всплеск посещаемости))))))
4. или вообще невыполнение задачи в нужное время т.к. за может ни кто и не обратиться к скрипту за нужный интервал времени


в общим самое рациональное решение - это планировщики, а php сгодится на крайний случай, если сильно надо а другого выхода нет.
(Добавление)
dembi
еще вот вопрос:
будь я этим скриптом я бы нифига не понял, меня "будит" сервер с просьбой показать строку "test".. и кому я должен ее показывать?? где выводить?? это ведь не пользователь меня попросил, ..

хотя я могу конечно ошибаться))))
5. dembi - 16 Декабря, 2009 - 16:22:40 - перейти к сообщению
Это я для примера написал этот скрапт.

Я хочу понять, php скрипты можно запускать только когда идет какой-то http запрос, или можно писать php срикты, как например sh/bash/python ?

Если можно, то как их запускать из командной строки?
6. Hunter - 16 Декабря, 2009 - 17:18:34 - перейти к сообщению
dembi
к скрипту может обращаться сервер без твоего участия при помощи планировщиков. просто пример который ты привел содержит команду echo? которая служит именно для вывода строки именно в браузер, а это уже предполагает какой то запрос какого то пользователя какого то браузера. как то так вот....
7. dembi - 16 Декабря, 2009 - 17:25:16 - перейти к сообщению
Хорошо, можно привети простой пример.

К примеру вывести с помощью PHP в обысный stdout 2+2

Машина у меня работает под ОС: Debian
8. Мелкий - 16 Декабря, 2009 - 17:29:44 - перейти к сообщению
dembi, если нет, ставите пакет php5-cli
запускать командой: php скрипт
Исполняемым скрипт делать не нужно, запускает всё равно не баш/шелл

Либо - wget'ом запрашиваете по http.
9. dembi - 17 Декабря, 2009 - 11:37:22 - перейти к сообщению
Спасибо за совет.
Буду пробовать реализовать это.
10. JustUserR - 17 Декабря, 2009 - 13:37:17 - перейти к сообщению
dembi А если вам нужен более-менее серьезные задачи выполнять то сделайте Perl/python-скрипт который будет висеть в памяти и чтото делать а чтобы не грузить процессор то sleep использовать

 

Powered by ExBB FM 1.0 RC1