Ich habe Angst, dass won direkt Ihre Seite (wget, netcat, etc ...) ins Leben gerufen Aufruf sein‘ Es funktioniert, weil es eine Browserfunktion ist, um die Seite zu aktualisieren.
Frage: Warum können Sie den Cronjob nicht so einstellen, dass er häufiger alle 5 Minuten ausgeführt wird?
Wenn es keine andere Option gibt, könnten Sie einen eigenen Daemon erstellen, um den Job häufiger auszuführen.
z.B. Ihre PHP-Skript könnte:
- Run
- 60 Sekunden warten
- Run
- (Warte; Run; zwei weitere Male)
- Ausfahrt
Zum Beispiel: (By Variation des Codes sshow)
<?php
$secs = 60;
ignore_user_abort(true);
set_time_limit(0);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
sleep($secs);
dostuff();
?>
Diese Version des Skripts bleibt für vier Minuten resident und führt den Code viermal aus, was einer Ausführung pro Minute entsprechen würde, wenn dieses Skript alle fünf Minuten von cron ausgeführt wird.
Es scheint etwas Verwirrung darüber zu geben, was ein Cronjob ist und wie es ausgeführt wird.
cron ist ein Daemon, der sich im Hintergrund befindet und Tasks über die Shell zu einem in crontab angegebenen Zeitplan ausführt.
Jeder Benutzer hat eine Crontab, und es gibt ein System Crontab.
Die crontab jedes Benutzers kann Jobs angeben, die als dieser Benutzer ausgeführt werden.
Zum Beispiel:
# run five minutes after midnight, every day
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# run at 2:15pm on the first of every month -- output mailed to paul
15 14 1 * * $HOME/bin/monthly
# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5 mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"
5 4 * * sun echo "run at 5 after 4 every sunday"
So alle fünf Minuten laufen:
*/5 * * * * echo "This will be run every five minutes"
Oder jede Minute auszuführen:
* * * * * echo "This will be run every minute"
Die Ausgabe der Befehle an die per E-Mail Besitzer der Crontab (oder wie von MAILTO angegeben). Dies bedeutet, dass Sie jede Minute eine E-Mail erhalten, wenn Sie jede Minute etwas ausführen, außer Sie stellen sicher, dass alle normalen Ausgaben unterdrückt oder umgeleitet werden.
Die Befehle werden als der Benutzer ausgeführt, der die Crontab besitzt, die im Gegensatz zu den vom Webserver ausgeführten Skripts steht, die als Benutzer 'nobody' (oder ähnlich) ausgeführt werden, unabhängig davon, welcher Webserver konfiguriert ist wie). Dies kann das Leben komplizierter machen, wenn der Cronjob in Dateien schreibt, auf die die vom Webserver ausgeführten Skripte zugreifen sollen. Grundsätzlich müssen Sie sicherstellen, dass die Berechtigungen korrekt sind.
Nun bin ich mir nicht sicher, dass dies das System ist, auf das Sie sich beziehen. Wenn Sie etwas anderes unter cronjob
meinen, dann trifft das oben nicht zu.
Wenn Sie etwas tun möchten, was Ihr aktueller Host Ihnen nicht erlaubt, dann sollten Sie, anstatt die Beschränkung zu hacken, den Hosting Provider wechseln.
Eine Alternative ist, um das Skript zu setzen in Sie normale Skripte Lage sind, und haben einige externe Scheduler laufen wget dagegen egal auf welcher Frequenz Sie mögen.
Eine weitere Alternative ist On-Demand-Aktualisierung der Form von vartec ‚s Vorschlag. Dies kann jedoch Ihre Probleme nicht lösen.
Interessiert zu hören, warum dies abgelehnt wird? – madcolor