Извините, если это глупый вопрос, но на самом деле я понятия не имею.
Я написал это приложение для сжатия и перемещения файлов с компьютера клиента на главный компьютер.
Это хорошо работает как веб-страница. Это был дон с небольшим руководством и без специальных документов.
Так как судьба имела бы это, это должна была быть работа cron, которая запускалась бы по телефону
*****runScript.php
Так что я не знаю, в каком порядке казнь будет или должна состояться.
Я использовал 2 AJAX-вызова для вызова методов в сценарии, но просто запуск файла в качестве сценария отличается от n.
Может кто-нибудь, пожалуйста, направлять меня?
например есть главный метод, который будет вызван первым.
и если так, то я могу вести сценарий оттуда.
ОБНОВЛЕНО
Ответы действительно помогают, но как это повлияет на php-файл? @ Оле Хаугсет упомянул, что я должен адаптировать его так $_GET
вары. Это делается в сценарии уже if ($_GET["argument"]=='runScript'){}
например.
Так добавляя runScript
чтобы вызов скрипта работал нормально?
например * * * * * php /path/to/file/runScript.php runScript
Нет проблем с запуском 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)
Чтобы добавить 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)
Так и должно быть 🙂
Распространенным методом запуска 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
Определите с примером.