Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von April

SELFHTML Forumsarchiv
PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Informationsseite
  1. Seite (PHP) PHP-Skript automatisch in bestimeten Zeitabständen ausführen von Simon Wimmer, 29. 04. 2006, 16:33
nach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: Simon Wimmer, 29. 04. 2006, 16:33

Ich möchte ein PHP-Skript automatisch in bestimeten Zeitabständen auf einem Server ausführen. Wie kann man das bewerkstelligen?

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: fastix®, 29. 04. 2006, 16:42

Moin!

»» Ich möchte ein PHP-Skript automatisch in bestimeten Zeitabständen auf einem Server ausführen. Wie kann man das bewerkstelligen?

Welche Möglichkeiten hast Du? Was für einen Server hast Du?
- SSH-Zugang?
- crond?

Wenn nicht:
- Wie genau müssen die Zeitabstände denn eingehalten werden?
- Hast Du die Möglichkeit die "Seite" regelmäßig von zu Hause auf aufzurufen? (Flatrate, geeignetes OS?)
...


MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: Simon Wimmer, 29. 04. 2006, 18:00

»» Moin!
»»
»» »» Ich möchte ein PHP-Skript automatisch in bestimeten Zeitabständen auf einem Server ausführen. Wie kann man das bewerkstelligen?
»»
»» Welche Möglichkeiten hast Du? Was für einen Server hast Du?
»» - SSH-Zugang?
»» - crond?

Möchte das für verschiedene Projekte auf Servern mit unterschiedlichen Möglichkeiten haben. (Wenns geht)

»» Wenn nicht:
»» - Wie genau müssen die Zeitabstände denn eingehalten werden?
»» - Hast Du die Möglichkeit die "Seite" regelmäßig von zu Hause auf aufzurufen? (Flatrate, geeignetes OS?)

-Zeitabstände müssen nicht all zu genau sein. Ungefähr jede 1/4 Stunde.
-Nein. Soll ja jede 1/4 Stunde sein.

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: fastix®, 29. 04. 2006, 18:46

Moin!

»» »» »» Ich möchte ein PHP-Skript automatisch in bestimeten Zeitabständen auf einem Server ausführen. Wie kann man das bewerkstelligen?
»» Möchte das für verschiedene Projekte auf Servern mit unterschiedlichen Möglichkeiten haben. (Wenns geht)
»» -Zeitabstände müssen nicht all zu genau sein. Ungefähr jede 1/4 Stunde.
»» -Nein. Soll ja jede 1/4 Stunde sein.


Beste Variante:

Notwendig: PHP als CLI (commando- line- interface- Version, nicht einzig als Modul)
Notwendig: ssh oder telnet- Zugang (geht mit Trick auch via PHP)
Notwendig: laufender cron- Demon:

Du rufts nach Aufbau der ssh-Stitzung crontab -e auf, um Deine crontab zu editieren. Da wird in der Regel der vi gestartet. Es ist möglich, dass ein anderer Editor (emacs, joe...) Standardeditor auf dem System ist. Lies dessen Hilfe...

Durch Drücken eines "i" rufts Du den "Eingabemodus auf und tippst Deinen Wunsch ein:

user@maschine:/verz> crontab -e
0,15,30,45 * * * * /usr/bin/php -q  /pfad/deinscript.php

Drücke jetzt [ESC]wq wenn alles so ist, so wie Du es wünschst. Damit wir gespeichert und beendet.

oder verlangst, dass das Skript direkt gestartet werden soll:

0,15,30,45 * * * * /pfad/deinscript.php


Im diesem Fall muss Dein Skript ausführbar (chmod 0755) sein und in der ersten(!) Zeile(!) eine shebang haben:
#! /usr/bin/php -q

Der oben genannte Pfad zu php ist beispielhaft und stimmt oft, jedoch nicht immer. Ein
user@maschine:/verz> whereis php
hilft hier weiter.


man 5 crontab und man 8 crontab liefert Dir die Hilfe zu den oben erforderlichen Eingaben, hier nur die Spalten, es handelt sich um seine "Leerzeichenseprierte Datei".

         field          allowed values
         -----          --------------
1.       minute         0-59
[Leerzeichen]
2.       hour           0-23
[Leerzeichen]
3.       day of month   1-31
[Leerzeichen]
4.       month          1-12 (or names, see below)
[Leerzeichen]
5.       day of week    0-7 (0 or 7 is Sun, or use names)
[Leerzeichen]
6. Programm mit Optionen/Parametern

Überall, wo Du auch Zahlen eingeben kannst kannst Du auch Listen (1,3,5...) oder Bereiche eingeben (1-10) oder Listen von Bereichen (8-12,14-20).

Wenn Du alle diese Möglichkeiten nicht hast, dann musst es anders machen, nämlich bei einem mehr oder weniger zufällig erfolgenden Seitenabruf prüfen, ob Dein zuletzt innerhalb der 15 Minuten gelaufen ist und es dann starten. Das geht auch so, dass Du es vom anderen-Skript abhängst:

<?php
# lesen von last_run.txt
# wenn zu alt: sperren von last_run.txt
  # schreiben des aktuellen timestamps nach last_run.txt
  # entsperren  von last_run.txt
  # starten des Skriptes so, dass aktuelles Skript nicht darauf wartet:
  $dummy=`/usr/bin/php /pfad/zu/deinem/skript.php 1> /pfad/zu/deinem/logfile.txt 2> /pfad/zu/deinem/error.txt &`;
  # Vorn un hintsen stehen wirklich Backticks (Umschalttaste plus die neben der Rückschritt-Taste)
# ende
?>



MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: eddi, 29. 04. 2006, 23:09

Moi Moin.


Eine kleine Korrektur noch:

»» Notwendig: PHP als CLI (commando- line- interface- Version, nicht einzig als Modul)

»» 0,15,30,45 * * * * /usr/bin/php -q  /pfad/deinscript.php
»» #! /usr/bin/php -q

Der Autor rät Dir zwar zum CLI, geht aber in seinen Beispielen vom CGI-Binär aus. Dankenswerter Weise akzeptiert das CLI-Binär den Parameter "-q" schadlos.


Gruß aus Berlin!
eddi

--
PHP: PHP unter Linux installieren, in Bearbeitung PHP Konfigurieren

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: Tobias Unger, 29. 04. 2006, 18:49

Hi,

»» Möchte das für verschiedene Projekte auf Servern mit unterschiedlichen Möglichkeiten haben. (Wenns geht)
SSH oder Crond brauchst du schon wenn es der Server ohne fremde hilfe schaffen soll:
Crond ist die Standardmöglichkeit dafür (unter Linux).
Mit ssh könntest du in etwa so was machen:
while true; do
 wget http://domain.tld/dir/file     ODER         php dir/file
 sleep 900
done


Natürlich kannst du die Variante mit wget auch Scripte auf fremden Servern starten lassen!

Grüße aus Nürnberg,
Tobias

--
tobias-unger.de - Website von Tobias Unger

nach obennach unten

PHP-Skript automatisch in bestimeten Zeitabständen ausführen

Die folgende Nachricht zum Thema stammt von: Jeena Paradies, 29. 04. 2006, 18:48

Hallo,

»» Ich möchte ein PHP-Skript automatisch in bestimeten Zeitabständen auf einem Server ausführen. Wie kann man das bewerkstelligen?
Zwei Linktipps:

  Cronjobs von Zuhause aus mit cURL
  Cronjob.de


Grüße
Jeena Paradies
--
Cronjobs von Zuhause aus mit cURL | Jlog | Gourmetica Mentiri

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2006 Teil von April

© 1998-2006 Seite Impressum, Software: Classic Forum