Benutzer1699
01.07.2008, 18:38
Wer bei seinem Webhosting-Paket Cronjobs beim Anbieter dazu bekommt
kann nach diesem Tutorial cronjob.de und andere Risikoquellen beim Betrieb ausschließen.
Vorteile:
- Cron läuft zur richtigen Zeit (korekte Serveruhr vorrausgesetzt)
- Kein Zugriff von extern möglich
- Zeitlimit greift i.d.R. nicht
- Weniger Traffic =)
Wer manuell keinen Aufruf der Cronjobs mehr benötigt, kann seinen Cronjob-Ordner mit einer .htaccess - Datei von außen unzugänglich machen:
DENY FROM ALL
Folgende Datei anlegen:
cronjob_cli.php
<?php
/**
* @author Christoph Zysik ( ztk@ztk-hosting.de )
* @version 0.2
*/
if('cli' === php_sapi_name()){
/** Hier den kompletten Server-Pfad zum VMS-Script angeben: */
$serverpfad = '/pfad/zur/domain.de/htdocs';
require ( $serverpfad.'/lib/functions.lib.php');
$cron = $_SERVER["argv"][1];
db_connect ();
db_query('DELETE FROM '.$db_prefix.'_reloads WHERE bis <= '.time().'');
$sql = db_query ('SELECT datei FROM '.$db_prefix.'_crons WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
$result = mysql_fetch_assoc ($sql);
chdir($serverpfad);
if ( include ($serverpfad.'/'.$result['datei']) ){
db_query ('UPDATE '.$db_prefix.'_crons SET laufzeit = '.time().' WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
echo 'Cron gelaufen';
} else echo 'Cron nicht gelaufen';
db_close(); }
?>
Der Eintrag in den Crontab wie folgt vornehmen:
1 2 3 4 5 php /pfad/zum/script/cronjob_cli.php 6
1-5 = Wann soll das Script laufen.
6 = ID des Crons, siehe Adminforce.
Fragen & Anregungen gerne an mich oder hier diskutieren.
kann nach diesem Tutorial cronjob.de und andere Risikoquellen beim Betrieb ausschließen.
Vorteile:
- Cron läuft zur richtigen Zeit (korekte Serveruhr vorrausgesetzt)
- Kein Zugriff von extern möglich
- Zeitlimit greift i.d.R. nicht
- Weniger Traffic =)
Wer manuell keinen Aufruf der Cronjobs mehr benötigt, kann seinen Cronjob-Ordner mit einer .htaccess - Datei von außen unzugänglich machen:
DENY FROM ALL
Folgende Datei anlegen:
cronjob_cli.php
<?php
/**
* @author Christoph Zysik ( ztk@ztk-hosting.de )
* @version 0.2
*/
if('cli' === php_sapi_name()){
/** Hier den kompletten Server-Pfad zum VMS-Script angeben: */
$serverpfad = '/pfad/zur/domain.de/htdocs';
require ( $serverpfad.'/lib/functions.lib.php');
$cron = $_SERVER["argv"][1];
db_connect ();
db_query('DELETE FROM '.$db_prefix.'_reloads WHERE bis <= '.time().'');
$sql = db_query ('SELECT datei FROM '.$db_prefix.'_crons WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
$result = mysql_fetch_assoc ($sql);
chdir($serverpfad);
if ( include ($serverpfad.'/'.$result['datei']) ){
db_query ('UPDATE '.$db_prefix.'_crons SET laufzeit = '.time().' WHERE id = '.$cron.' LIMIT 1') or die(mysql_error());
echo 'Cron gelaufen';
} else echo 'Cron nicht gelaufen';
db_close(); }
?>
Der Eintrag in den Crontab wie folgt vornehmen:
1 2 3 4 5 php /pfad/zum/script/cronjob_cli.php 6
1-5 = Wann soll das Script laufen.
6 = ID des Crons, siehe Adminforce.
Fragen & Anregungen gerne an mich oder hier diskutieren.