Как я могу написать скрипт PHP cron?

Извините, если это глупый вопрос, но на самом деле я понятия не имею.

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

*****runScript.php

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

Я использовал 2 AJAX-вызова для вызова методов в сценарии, но просто запуск файла в качестве сценария отличается от n.

Может кто-нибудь, пожалуйста, направлять меня?

например есть главный метод, который будет вызван первым.
и если так, то я могу вести сценарий оттуда.

ОБНОВЛЕНО

Ответы действительно помогают, но как это повлияет на php-файл? @ Оле Хаугсет упомянул, что я должен адаптировать его так $_GET вары. Это делается в сценарии уже if ($_GET["argument"]=='runScript'){} например.

Так добавляя runScript чтобы вызов скрипта работал нормально?

например * * * * * php /path/to/file/runScript.php runScript

1

Решение

Нет проблем с запуском PHP-скрипта как задания cron.
Вам нужно указать полный путь в файловой системе к файлу сценария и использовать команду php сообщить Linux, с какой программой запускать файл.

Пример:

*/5 * * * * php /var/www/vhosts/statistikk/cron/getLastArticleFromIntranet.cron.php >> /var/www/vhosts/statistikk/cron/LOG.txt 2> /dev/null

Этот скрипт будет запускаться каждые 5 минут, все дни недели. Что бы ни повторял / печатал PHP-скрипт, он будет сохранен в LOG.txt файл, чтобы я мог отслеживать события сценариев.

Попробуйте запустить только команду в вашей оболочке, прежде чем помещать ее в cronjobs, чтобы убедиться, что она работает.

Однако вы говорите, что обычно вызываете этот скрипт с помощью вызова AJAX. Это не будет возможно сделать с cronjob. Я предполагаю, что вы используете AJAX для передачи некоторых $ _POST-элементов, которые нужны скрипту. Так что вам нужно либо адаптировать скрипт, чтобы $argv параметры, и добавьте их в задание crontab, или просто создайте сценарий, которому не нужны никакие параметры перед запуском.

Если вы собираетесь адаптировать свой скрипт для поддержки $argv параметры, следуйте ответу, уже существующему в Stack Overflow о добавлении параметров в задание:

Как запустить php url с параметрами на вкладке cron

РЕДАКТИРОВАТЬ:

Я просто хотел бы добавить к своему ответу, как ответ ниже.
Для редактирования ваших заданий crontab в Linux вы можете просто использовать команду crontab -e,

Это описание каждого обязательного параметра, который необходимо заполнить.

*     *     *   *    *        command to be executed
-     -     -   -    -
|     |     |   |    |
|     |     |   |    +----- day of week (0 - 6) (Sunday=0)
|     |     |   +------- month (1 - 12)
|     |     +--------- day of        month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)
5

Другие решения

Чтобы добавить cronjob в Linux, сделайте это:

# crontab -e
если vi — ваш редактор, нажмите i, чтобы ввести текст, и esc, чтобы выйти. Используйте: w для сохранения изменений и: q для выхода.
Если nano — ваш выбранный редактор, используйте strg + o для сохранения и str + x для закрытия.

В любом случае добавьте эту строку в тело файла: * / 5 * * * * php runScript.php

Это будет называться каждые 5 минут.

* * * * * php /path/to/file/runScript.php
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday is 0 or 7)
│ │ │ └────── Month (1-12)
│ │ └──────── Day (1-31)
│ └────────── Hour (0-23)
└──────────── Minute (0-59)

Так и должно быть 🙂

2

Распространенным методом запуска PHP-скриптов из задания cron является использование программы командной строки, такой как curl или wget. Например, задание cron запускает команду, аналогичную следующей:

curl http://*****.com/script.php

В этой команде curl извлекает веб-страницу, которая затем запускает скрипт PHP.

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

/usr/local/bin/php -q /home/username/public_html/script.php

В этом примере интерпретатор командной строки PHP запускает файл script.php. Опция -q включает тихий режим, который не позволяет отображать заголовки HTTP.

В зависимости от кода в вашем PHP-скрипте, он может работать правильно только при вызове из определенного каталога. Например, если сценарий использует относительные пути для включения файлов, он будет работать только в том случае, если он вызывается из правильного каталога. Следующая команда показывает, как вызвать скрипт PHP из определенного каталога:

cd /home/username/public_html/; /usr/local/bin/php -q script.php

Если ваш сценарий требует специальных параметров конфигурации, вы можете использовать php.ini файл. -c Опция позволяет позвонить PHP script используя обычай php.ini файл:

/usr/local/bin/php -c /home/username/php.ini /home/username/public_html/script.php

Кликните сюда больше о Cron PHP Script Определите с примером.

2
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector