[TYPO3-german] Cronjob einrichten
Kay Strobach
typo3 at kay-strobach.de
Wed Nov 16 12:00:34 CET 2011
Hallo Heike,
also, das sieht so aus, als ob die Rechte nicht stimmen.
Erstelle dir am besten eine Datei mit folgendem Namen:
/somewhere/cronjobs/typo3scheduler.sh
/usr/bin/php -q [pfad zu dem schedulerscript aus dem typo3 be]
gibt der datei /somewhere/cronjobs/typo3scheduler.sh ein chmod +x für
den nutzer, den du als cronjob nimmst.
jetzt lässt du den scheduler job mit cron alle 5 minuten ausführen.
Der scheduler cronjob ist ein wrapper, quasi der externe trigger.
Nur wenn cron den anschubst, können auch die tasks aus dem typo3be
ausgeführt werden ...
http://typo3.sfroemken.de/typo3-tutorials/extensions/scheduler.html
http://jweiland.net/typo3/anleitung/extension/scheduler.html
Grüße
Kay
Am 16.11.2011 11:29, schrieb Heike Herzog-Kuhnke:
> Hi Kay,
>
> also jetzt langsam glaube ich ich bin zu blöd das richtig zu machen. Ich
> habe den Befehl als Cronjob eingestellt, der mitternachts täglich läuft.
> Zu Sicherheit habe ich mir eine Email schicken lassen, die auch kam,
> wodurch ich mal davon ausgehe, dass die Ausführung lief:
>
> ###############
>
> #! /usr/bin/php -q * * This script takes a "cliKey" as first argument
> and uses that to look up the path of the script to include in the end. *
> See configuration of this feature in
> $TYPO3_CONF_VARS['SC_OPTIONS']['GLOBAL']['cliKeys']. * The point is to
> have only ONE script dealing with the environment initialization while
> the actual processing is all a developer should care for. * */ if
> (substr(php_sapi_name(), 0, 3) == 'cgi') { // sanity check: ensure that
> we're running in a shell or cronjob (and NOT via HTTP) $checkEnvVars =
> array('HTTP_USER_AGENT', 'HTTP_HOST', 'SERVER_NAME', 'REMOTE_ADDR',
> 'REMOTE_PORT', 'SERVER_PROTOCOL'); foreach ($checkEnvVars as $var) { if
> (array_key_exists($var, $_SERVER)) { echo 'SECURITY CHECK FAILED! This
> script cannot be used within your browser!' . chr(10); echo 'If you are
> sure that we run in a shell or cronjob, please unset' . chr(10); echo
> 'environment variable ' . $var . ' (usually using \'unset ' . $var .
> '\')' . chr(10); echo 'before starting this script.' . chr(10); exit; }
> } unset($checkEnvVars); // mimic CLI API in CGI API (you must use the
> -C/-no-chdir and the -q/--no-header switches!) ini_set('html_errors',
> 0); ini_set('implicit_flush', 1); ini_set('max_execution_time', 0); if
> (!ini_get('register_argc_argv')) { $argv = $_SERVER['argv']; $argc =
> $_SERVER['argc']; } define(STDIN, fopen('php://stdin', 'r'));
> define(STDOUT, fopen('php://stdout', 'w')); define(STDERR,
> fopen('php://stderr', 'w')); } elseif (php_sapi_name() != 'cli') {
> die('Not called from a command line interface (e.g. a shell or
> scheduler).' . chr(10)); } // Defining circumstances for CLI mode:
> define('TYPO3_cliMode', TRUE); // Get path to this script
> $temp_PATH_thisScript = isset($_SERVER['argv'][0]) ? $_SERVER['argv'][0]
> : (isset($_ENV['_']) ? $_ENV['_'] : $_SERVER['_']); // Figure out if the
> path is relative $relativePath = FALSE; if (stristr(PHP_OS,'win') &&
> !stristr(PHP_OS,'darwin')) { // Windows if
> (!preg_match('/^([A-Z]:)?\\\/', $temp_PATH_thisScript)) { $relativePath
> = TRUE; } } else { // *nix, et al if ($temp_PATH_thisScript{0} != '/') {
> $relativePath = TRUE; } } // Resolve path if ($relativePath) {
> $workingDirectory = $_SERVER['PWD'] ? $_SERVER['PWD'] : getcwd(); if
> ($workingDirectory) { $temp_PATH_thisScript =
> $workingDirectory.'/'.preg_replace('/\.\//','',$temp_PATH_thisScript);
> if (!@is_file($temp_PATH_thisScript)) { die('Relative path found, but an
> error occurred while resolving the absolute path: ' .
> $temp_PATH_thisScript . chr(10)); } } else { die ('Relative path found,
> but resolving absolute path is not supported on this
> platform.'.chr(10)); } } // Define absolute path to this script
> define('PATH_thisScript',$temp_PATH_thisScript); if
> (!isset($_SERVER['argv'][1])) { die ('The first argument must be a valid
> key.'.chr(10)); } // First argument is a key that points to the script
> configuration define('TYPO3_cliKey', $_SERVER['argv'][1]); // Include
> init file: require(dirname(PATH_thisScript).'/init.php'); // Make sure
> output is not buffered, // so that command-line output and interaction
> can take place t3lib_div::flushOutputBuffers(); if
> (defined('TYPO3_cliInclude')) { include(TYPO3_cliInclude); } else {
> die('No include file configured for key "'.TYPO3_cliKey.'".'.chr(10)); } ?>
> ############
>
> Aber mein Scheduler im Backend erzählt, dass die Ausführung der
> Aktualisierung verspätet ist. Muss ich hier die Ausführung anpassen auf
> Mitternachts, oder wo trage ich das denn ein? Oder soll der
> Scheduler-Cronjob echt alle 15 Minuten laufen, damit er zur richtigen
> Zeit am Richtigen Ort ist ???
>
> Arghh, ich hoffe ich kapier es irgendwann mal endlich.
>
> Gruß und danke für Deine Geduld
> Heike
--
http://www.kay-strobach.de - Open Source Rocks
TYPO3 .... inspiring people to share!
Get involved: http://typo3.org
Answere was usefull: https://flattr.com/profile/kaystrobach
More information about the TYPO3-german
mailing list