GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Übergeben von $_GET-Parametern an den Cron-Job

Keine direkte Antwort auf Ihre Frage, aber eine bessere Lösung, denke ich:

Wenn Sie möchten, dass niemand außer cron das Skript ausführt, platzieren Sie es einfach außerhalb des Web-Stammverzeichnisses. Somit gibt es überhaupt keinen Zugriff über den Webserver.

Wenn Sie den Befehl auch als spezieller Benutzer ausführen müssen, verwenden Sie GET nicht aber haben Sie eine Benutzeranmeldung und suchen Sie nach einer angemeldeten Sitzung (eine bestimmte festgelegte Sitzungsvariable ...) und fügen Sie das Skript nur in diese Seite ein.

Ihr öffentlich zugängliches Skript würde in etwa so aussehen:

session_start();

if (isset($_SESSION['user']))
{
  include '/path/to/script/outside/of/web-root';
}
else
{
  die('No access.');
}

Die $_GET[] &$_POST[] Assoziative Arrays werden nur initialisiert, wenn Ihr Skript über einen Webserver aufgerufen wird. Beim Aufruf über die Kommandozeile werden Parameter im $argv übergeben Array, genau wie C.

Enthält ein Array aller Argumente, die an das Skript übergeben werden, wenn es von der Befehlszeile ausgeführt wird.

Ihr Befehl wäre:

* 3 * * * /path_to_script/cronjob.php username=test password=test code=1234 

Sie würden dann parse_str() verwenden, um die Parameter zu setzen und darauf zuzugreifen:

<?php

var_dump($argv);

/*
array(4) {
  [0]=>
  string(27) "/path_to_script/cronjob.php"
  [1]=>
  string(13) "username=test"
  [2]=>
  string(13) "password=test"
  [3]=>
  string(9) "code=1234"
}
*/

parse_str($argv[3], $params);

echo $params['code']; // 1234

Linux
  1. So erstellen Sie ein Skript eines Linux-Befehls

  2. Wie führe ich "date" innerhalb eines Cron-Tab-Jobs aus?

  3. Mehrere Parameter über Xargs übergeben?

  4. Cron-Job zum Überprüfen, ob das Php-Skript ausgeführt wird, wenn nicht, dann ausführen?

  5. Mein Cronjob funktioniert nicht

So richten Sie einen Cron-Job unter Linux ein

Verwenden eines Cron-Wrapper-Skripts

Cron-Job wird nicht ausgeführt?

Wie führe ich einen Befehl in einem Shell-Skript aus?

Testen Sie einen wöchentlichen Cronjob

Godaddy Cron-Job-Setup zum Ausführen von PHP-Skripten