Запускать php-скрипт только из Cron или проверить, запрашивается ли запрос cron?

Как я могу запустить php-скрипт только из cron или можно проверить, поступает ли запрос от cron?

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

Я пытаюсь вызвать php-файл с параметром. Но никто из них не работает:

php -q /home/domain/public_html/cronjob.php?i=a php -q /home/domain/public_html/cronjob.php par1 php -q /home/domain/public_html/cronjob.php par1=a php -q /home/domain/public_html/cronjob.php par1='a' 

Я не могу использовать $ _GET, $ _ SESSION или $ argv. Как я вызываю файл с параметром?

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

Если вам также необходимо провести различие между заданием cron и вызовом командной строки скрипта, вы можете проверить пользователя, выполняющего скрипт, и посмотреть, будет ли оно работать с cron. Это можно сделать, например, в системе * nix, с posix_getuid или posix_getlogin .

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

Как насчет передачи некоторого ключа auth в ваш скрипт, который хранится только в сценарии cron_script и получателя. При вызове проверки, если authkey передается через $ _GET ['auth_key'] в вашем сценарии приемника.

Например: http://www.example.com/receiver_script.php?auth_key= "WhatEverYouWant"

Хорошо, я нашел решение. Если вы хотите вызвать php-файл с параметром GET, вы должны вызвать файл следующим образом:

 php -q /home/domain/public_html/cronjob.php name=value 

и вы можете получить эти данные в php-файле, используя $ _GET:

 $_GET['name'] 

или argv:

 $argv[1] 

Если вы хотите передать параметр просто argb:

 php -q /home/domain/public_html/cronjob.php value 

Другие примеры, которые я нашел на веб-сайтах, не работают, но они отлично работают.

Вы можете просто передать параметр в свой скрипт, который говорит, что он был вызван в задании cron. Взгляните на вопрос: cron-jobs-call-a-php-script-with-variables