добавить скрипт php в cron для запланированного задания из php? - PullRequest
0 голосов
/ 19 апреля 2010

есть ли способ добавить скрипт (файл) php в cron для запуска этого скрипта каждые десять минут или в запланированное время?

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

поэтому мне нужно создать задание cron из php, чтобы запустить файл php в указанное время.

возможно ли это, если у вас есть общая среда веб-хостинга (не vps)

Ответы [ 3 ]

2 голосов
/ 19 апреля 2010

Если вы пишете сценарий, файл с именем news.php находится в /home/user/news.php Строка crontab выглядит так:

* * * * * php /home/user/news.php

Если вы не хотите запускать это каждую минуту. Вы можете редактировать * слева (m, h, dom, mon, dow)

Но вы не можете сделать это, если только у вас есть тот же веб-хостинг, у вас должен быть доступ к оболочке или другой способ настройки ваш файл crobtab (возможно, с панели доступа вашего провайдера)

Но вы можете запустить задание crontab на другом сервере, чтобы запустить ваш news.php по протоколу apache over http. В этом случае ваше задание crontab на удаленном сервере должно запускать ваш скрипт через Интернет. Например. Wget является хорошим вариантом для этого:

* * * * * wget http://www.yourdomain.com/dir/news.php
1 голос
/ 19 апреля 2010

Да. Возможно, но на виртуальном хостинге это повлияет как на ваши, так и на другие сайты на этом хосте.

Так что, если ваш файл не часто вызывается cron, тогда можно поставить cron на общем хосте, но если вам нужно часто его вызывать, то это не рекомендуется, ваш провайдер также может быть исключен сайт не работает из-за другого сайта.

1 голос
/ 19 апреля 2010

Мой совет: не разрешать PHP-скрипту, вызываемому Apache, изменять cron.Это повсюду написано бедствие.Обычно cron настроен так, чтобы требовать разрешения root.Это можно изменить, но суть в том, что если ваш сайт действительно взломан, дать злоумышленнику возможность изменить ваш cron может быть действительно очень плохо.

Более того, это не обязательно.Все, что вы делаете, это выбираете некоторую степень детализации, скажем, каждую минуту, или 5, или 10 минут.Вы говорите пользователям, что они могут запланировать это до этого уровня.Дайте им несколько вариантов от каждого месяца до каждых 5 минут.Что бы они ни выбрали, запишите это в базу данных.

Затем запускайте разный PHP-скрипт каждые 1, 5 или 10 минут (независимо от минимальной степени детализации) и просмотрите его в базе данных, чтобы узнать, есть ли что-нибудьбеги, делай или отправляй.

...