У меня есть веб-страница в http://mydomain.com/process/2909
Я хочу, чтобы cron автоматически переходил на эту страницу каждую ночь в 2 часа ночи. Я собирался заставить cron запустить PHP-скрипт, который открывает веб-сайт с помощью CURL, вот так:
$bocURL = 'http://mydomain.com/process/2909';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $bocURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$bocFile = curl_exec($ch);
curl_close($ch);
Есть ли способ сделать это прямо из команды cron без написания сценария PHP?
Команда wget
- хорошее решение этой проблемы, если вы обращаетесь к сценарию на удаленном сервере. Однако, если вы запускаете задание cron на фактическом хосте, которым является «mydomain.com», вы можете просто запланировать выполнение задания crobjob для выполнения кода, расположенного в / process / 2909.
Например, у нас есть некоторые задания PHP, которые мы выполняем с помощью cron. Вместо того, чтобы использовать HTTP-запрос, который может занять несколько минут (и потенциально вызвать проблемы с тайм-аутом), мы настраиваем задание cron, которое вызывает «php5 /srv/cronJobs/2909.php» - это вызывает интерпретатор PHP и не зависит от тайм-аутов HTTP. Кроме того, этот процесс PHP отделен от Apache, поэтому запланированное задание не завершится, если системный администратор перезапустит httpd.
Обратите внимание, что выбранный ответ работает только в том случае, если вы заинтересованы в получении HTML-кода непосредственно с URL-адреса. Если вам нужно разобраться в некоторых элементах пользовательского интерфейса, прежде чем вы попадете на нужную страницу, я бы рекомендовал запустить Selenium на безголовом X-сервере. Я делаю это сейчас для проекта, это работает как шарм.
Надеюсь это поможет.
С Уважением,
Себастьян