#php #cron
#php #cron
Вопрос:
я пытаюсь настроить cronjob для запуска PHP-файла. я просто хочу знать, правильно ли я это делаю или нет.
допустим, php находится в http://mysite.com/myscript/cronjob.php , и я хочу, чтобы он запускался каждые 3 часа.
я очень новичок в cronjobs, поэтому прошу прощения, если кажется, что я понятия не имею, что я делаю.
Minute Hour Day Month Weekday Command
* */3 * * * http://mysite.com/myscript/cronjob.php
я хочу, чтобы этот PHP-скрипт запускался каждые 3 часа. будет ли это работать или мне нужно использовать другую команду?
Комментарии:
1. Вам нужно использовать команды, понятные вашей системе. И в Интернете есть много хороших руководств по crontab. Google, пока не найдете тот, который говорит на вашем языке.
Ответ №1:
Нет, это не сработает. URL-адрес не является исполняемым файлом, это просто URL-адрес.
Вы могли бы wget http://mysite.com/myscript/cronjob.php
указать для своей команды, но это действительно то, что вы хотите?
Лучший способ (если скрипт находится на локальном сервере) — вызвать PHP напрямую:
php /var/www/myscript/cronjob.php
Ответ №2:
Почти, это должно сделать это
* */3 * * * wget -q -o /dev/null http://mysite.com/myscript/cronjob.php
или с помощью curl
* */3 * * * curl -s -o /dev/null http://mysite.com/myscript/cronjob.php
-s / -q отключит вывод, а -o перенаправит вывод скриптов в /dev/null
Ответ №3:
В дополнение к тому, что другие говорили о невозможности указать URL-адрес для запроса:
Я нашел несколько ссылок в Интернете, которые предупреждают
A. ) Повторяющийся шаблон, такой как /2 каждые 2 минуты или /10 каждые 10 минут, поддерживается не всеми операционными системами. Если вы попытаетесь использовать его, и crontab пожалуется, что он, вероятно, не поддерживается.
Однако, если предположить, что поддерживаются повторяющиеся шаблоны, это должно сработать.
Таким образом, более переносимым способом было бы сделать:
* 0,3,9,12,15,18,21 * * * php /var/www/myscript/cronjob.php
Комментарии:
1. Ваш cron извлекает URL-адреса для вас?
2. @Brad err нет, это не так. Не видел этого 🙂