Ich bin neu in der Verwendung von Cron Job. Ich weiß nicht einmal, wie ich es schreiben soll. Ich habe versucht, über das Internet zu suchen, aber ich verstehe es immer noch nicht gut. Ich möchte einen Cron-Job erstellen, der meinen Code jede Minute ausführt. Ich benutze PHP, um es zu erstellen. Es funktioniert nicht.
Beispiel
run.php (Code, der jede Minute ausgeführt wird)
<?php
echo "This code will run every minute";
?>
cron.php
<?php
$path = dirname(__FILE__);
$cron = $path . "/run.php";
echo exec("***** php -q ".$cron." &> /dev/null");
?>
Angenommen, diese beiden Dateien befinden sich im selben Ordner.
Ist der Code, den ich falsch gemacht habe? Wenn dies nicht der Fall ist, teilen Sie mir bitte mit, wie das Problem behoben werden kann.
crontab
Antworten:
Dies ist die beste Erklärung für Code in PHP, die ich bisher gefunden habe:
http://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
Zusamenfassend:
Obwohl die Syntax zum Planen eines neuen Jobs auf den ersten Blick entmutigend erscheint, ist sie relativ einfach zu verstehen, sobald Sie sie aufgeschlüsselt haben. Ein Cron-Job hat immer fünf Spalten, von denen jede einen chronologischen 'Operator' darstellt, gefolgt vom vollständigen Pfad und dem auszuführenden Befehl:
* * * * * home / path / to / command / the_command.sh
Jede der chronologischen Spalten hat eine spezifische Relevanz für den Zeitplan der Aufgabe. Sie sind wie folgt:
Wenn man zum Beispiel am ersten Tag eines jeden Monats eine Aufgabe für 12 Uhr planen möchte, sieht sie ungefähr so aus:
0 0 1 * * home / path / to / command / the_command.sh
Wenn wir eine Aufgabe planen möchten, die jeden Samstag um 8:30 Uhr ausgeführt wird, schreiben wir sie wie folgt:
30 8 * * 6 home / path / to / command / the_command.sh
Es gibt auch eine Reihe von Operatoren, mit denen der Zeitplan noch weiter angepasst werden kann:
Besuchen Sie den Link für den vollständigen Artikel, es erklärt:
quelle
Auf die gleiche Weise, wie Sie versuchen, cron.php auszuführen, können Sie ein anderes PHP-Skript ausführen. Sie müssen dies jedoch über die CLI-Schnittstelle tun.
Fügen Sie dann der crontab einen Eintrag hinzu:
Wenn das Skript run.php ausführbare Berechtigungen hätte, könnte es direkt in der crontab aufgelistet werden, auch ohne den Teil / usr / bin / php. Der Teil 'env php' im Skript würde das geeignete Programm finden, um den PHP-Code tatsächlich auszuführen. Fügen Sie für die 'ausführbare' Version der Datei ausführbare Berechtigungen hinzu:
Fügen Sie dann den folgenden Eintrag in crontab hinzu:
quelle
Zu Alister hinzugefügt, können Sie die crontab normalerweise (nicht immer) bearbeiten, indem Sie crontab -e in einer ssh-Sitzung auf dem Server eingeben.
Die Sterne repräsentieren (* bedeutet jede dieser Einheiten):
Sie könnten etwas mehr über lesen diese hier .
quelle
Geben Sie Folgendes in das Linux / Ubuntu-Terminal ein
Wählen Sie einen Editor aus (manchmal wird nach dem Editor gefragt) und dieser wird für jede Minute ausgeführt
quelle
Dies kann von Ihrem Webhost abhängen, wenn Sie keine eigenen Inhalte hosten. Wenn Ihr Webhost das Erstellen von Chron-Jobs unterstützt, können Sie möglicherweise ein Formular ausfüllen, in dem Sie die Häufigkeit auswählen und den absoluten Pfad zur auszuführenden Datei eingeben können. Mit meinem Webhost (DreamHost) kann ich beispielsweise benutzerdefinierte Cron-Jobs erstellen, indem ich den absoluten Pfad zur Datei eingebe und die Häufigkeit aus einem Auswahlmenü auswähle. Dies ist für Ihren Server möglicherweise nicht möglich. In diesem Fall müssen Sie die Crontab entweder direkt oder über Ihre hostspezifische Methode bearbeiten.
Erstellen Sie, wie oben von Alister Bulman beschrieben , eine PHP-Datei, die mithilfe der CLI ausgeführt werden soll (stellen Sie sicher, dass sie ganz
#!/usr/bin/env php
am Anfang der Datei vor dem<?php
Tag steht. Dadurch wird sichergestellt, dass die Shell weiß, welche ausführbare Datei beim Ausführen des Skripts aufgerufen werden soll.quelle
Warum benutzt du keine Locke? Wenn Sie eine PHP-Datei ausführen, führen Sie diese logischerweise per URL in Ihrem Browser aus. Es ist sehr einfach, wenn Sie Curl laufen
quelle
quelle
Öffnen Sie zuerst Ihren SSH-Server mit Benutzername und Kennwort und wechseln Sie zum Standard-Root-Benutzer (Benutzer mit allen Berechtigungen). Führen Sie dann die folgenden Schritte aus:
crontab -l
jetzt ein. Sie sehen die Liste aller Cronjobs.crontab -e
eine Datei ein, in der alle Cron-Jobs geöffnet werden.min hr dayofmonth month dayofweek pathtocronjobfile
und speichern Sie die Datei.crontab: installing new crontab
Überprüfen Sie die Liste der Cronjobs, in denen Ihr Cron-Job aufgeführt ist.quelle
Verwenden Sie für diese Aufgabe besser das Projekt Cron in Kombination mit dem Linux-Cronjob. Es ermöglicht Ihnen, Laufzeiten in Ihrem PHP-Code zu konfigurieren, Hintergrundjobs zu unterstützen und ist einfach zu bedienen.
Erster Schritt Rufen Sie jede Minute ein PHP-Skript auf:
Zweiter Schritt Verwenden Sie das cron / cron- Paket, um die Laufzeiten direkt in PHP zu konfigurieren.
Sie haben die Details zur Verwendung im verknüpften Repository gefunden.
quelle
Erstellen Sie einen solchen Cronjob, an dem Sie jede Minute arbeiten können
quelle
Es gibt eine einfache Möglichkeit, dies zu lösen: Sie können die PHP-Datei alle 1 Minute per Cron ausführen und in der ausführbaren PHP-Datei die Anweisung "if" ausführen, wenn die Zeit "jetzt" wie folgt ausgeführt wird
quelle
quelle