Ich bin neu in der Verwendung von Cron-Jobs. Ich weiß gar nicht, wie ich das schreiben soll. Ich habe versucht, im 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 verwende PHP, um es zu erstellen. Es funktioniert nicht.
Angenommen, diese beiden Dateien befinden sich im selben Ordner.
Ist der Code, den ich falsch gemacht habe? Wenn falsch, sagen Sie mir bitte, wie ich es beheben kann.
hast du Shell-Zugriff auf dem Server?
– Benutzer557846
11. September 2013 um 9:31 Uhr
Sie können nicht einfach *** ausgeben und erwarten, dass ein Cronjob erstellt wird. Lesen Sie hier nach, wie Sie Cronjobs erstellen (vorausgesetzt, Sie befinden sich auf einem Server mit Linux). thesitewizard.com/general/set-cron-job.shtml
– dünn
11. September 2013 um 9:31 Uhr
@Dagon: Das weiß ich nicht. Ich werde das überprüfen.
– Benutzer2738520
11. September 2013 um 9:40 Uhr
Es ist ein einmaliges Ereignis, also nutzen Sie es crontab
– Ed heilen
26. Januar 2014 um 16:49 Uhr
Nikolai Iwanow
Dies ist die beste Erklärung mit Code in PHP, die ich bisher gefunden habe:
Obwohl die Syntax zum Planen eines neuen Jobs auf den ersten Blick entmutigend erscheinen mag, ist sie eigentlich 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:
Minutes represents the minutes of a given hour, 0-59 respectively.
Hours represents the hours of a given day, 0-23 respectively.
Days represents the days of a given month, 1-31 respectively.
Months represents the months of a given year, 1-12 respectively.
Day of the Week represents the day of the week, Sunday through Saturday, numerically, as 0-6 respectively.
Wenn man zum Beispiel eine Aufgabe für jeden ersten Tag im Monat um 00:00 Uhr planen möchte, würde das ungefähr so aussehen:
0 0 1 * * home/path/to/command/the_command.sh
Wenn wir eine Aufgabe so planen wollten, dass sie jeden Samstag um 8:30 Uhr ausgeführt wird, würden wir sie wie folgt schreiben:
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:
Commas is used to create a comma separated list of values for any of the cron columns.
Dashes is used to specify a range of values.
Asterisksis used to specify 'all' or 'every' value
Besuchen Sie den Link für den vollständigen Artikel, er erklärt:
Welches Format hat der Cronjob, wenn Sie ihn manuell eingeben/bearbeiten möchten?
So verwenden Sie PHP mit der SSH2-Bibliothek, um sich als Benutzer zu authentifizieren, welche Crontab Sie bearbeiten werden.
Vollständige PHP-Klasse mit allen notwendigen Methoden zur Authentifizierung, Bearbeitung und Löschung von Crontab-Einträgen.
Diese Antwort stellt den Link bereit, erklärt jedoch nicht “Erstellen eines Cron-Jobs mit PHP”.
– Dziad Borowy
6. Januar um 16:22 Uhr
Alister Bulmann
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.
#!/usr/bin/env php
<?php
# This file would be say, '/usr/local/bin/run.php'
// code
echo "this was run from CRON";
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 ‘env php’-Teil im Skript würde das geeignete Programm finden, um den PHP-Code tatsächlich auszuführen. Also, für die ‘ausführbare’ Version – fügen Sie der Datei eine ausführbare Berechtigung hinzu:
chmod +x /usr/local/bin/run.php
und fügen Sie dann den folgenden Eintrag in crontab hinzu:
* * * * * /usr/local/bin/run.php &> /dev/null
Großer Ingwer-Nerd
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 Einheit):
[Minute] [Hour] [Day] [Month] [Day of week (0 =sunday to 6 =saturday)] [Command]
Verwenden Sie besser das Projekt Cron in Kombination mit dem Linux-Cronjob für diese Aufgabe. Es ermöglicht Ihnen, Laufzeiten in Ihrem PHP-Code zu konfigurieren, unterstützt Hintergrundjobs und ist einfach zu bedienen.
Rufen Sie im ersten Schritt jede Minute ein PHP-Skript auf:
* * * * * /usr/local/bin/run.php &> /dev/null
Zweiter Schritt Verwenden Sie die cron/cron Paket zum Konfigurieren von Laufzeiten direkt in PHP.
Die Details zur Verwendung finden Sie im verlinkten Repository.
acharris
Das kann von Ihrem Webhost abhängen, wenn Sie nicht Ihre eigenen Inhalte hosten. Wenn Ihr Webhost das Erstellen von Chron-Jobs unterstützt, hat er möglicherweise ein Formular, das Sie ausfüllen müssen, damit Sie die Häufigkeit auswählen und den absoluten Pfad zu der auszuführenden Datei eingeben können. Mein Webhost (DreamHost) ermöglicht es mir beispielsweise, benutzerdefinierte Cron-Jobs zu erstellen, indem ich den absoluten Pfad zur Datei eintippe und die Häufigkeit aus einem Auswahlmenü auswähle. Dies ist möglicherweise für Ihren Server nicht möglich. In diesem Fall müssen Sie die Crontab entweder direkt oder über Ihre hostspezifische Methode bearbeiten.
Erstellen Sie, wie Alister Bulman oben beschrieben hat, eine PHP-Datei, die mit CLI ausgeführt werden soll (stellen Sie sicher, dass Sie #!/usr/bin/env php ganz am Anfang der Datei vor dem <?php Schild. Dadurch wird sichergestellt, dass die Shell weiß, welche ausführbare Datei aufgerufen werden soll, wenn das Skript ausgeführt wird.
Gokulpriya
Öffnen Sie zuerst Ihren SSH-Server mit Benutzername und Passwort und wechseln Sie zum Standard-Root-Benutzer (Benutzer mit allen Berechtigungen). Führen Sie dann die folgenden Schritte aus.
geben Sie den Befehl ein crontab -l Jetzt sehen Sie die Liste aller Cronjobs.
betreten crontab -e Eine Datei mit allen Cronjobs wird geöffnet.
Bearbeiten Sie die Datei mit Ihrem Cronjob-Zeitplan als min hr
dayofmonth month dayofweek pathtocronjobfile und speichern Sie die Datei.
Jetzt sehen Sie eine Antwort crontab: installing new
crontab Überprüfen Sie nun erneut die Liste der Cronjobs, Ihr Cronjob wird dort aufgeführt.
9927400cookie-checkWie erstelle ich einen Cron-Job mit PHP?yes
hast du Shell-Zugriff auf dem Server?
– Benutzer557846
11. September 2013 um 9:31 Uhr
Sie können nicht einfach *** ausgeben und erwarten, dass ein Cronjob erstellt wird. Lesen Sie hier nach, wie Sie Cronjobs erstellen (vorausgesetzt, Sie befinden sich auf einem Server mit Linux). thesitewizard.com/general/set-cron-job.shtml
– dünn
11. September 2013 um 9:31 Uhr
@Dagon: Das weiß ich nicht. Ich werde das überprüfen.
– Benutzer2738520
11. September 2013 um 9:40 Uhr
Es ist ein einmaliges Ereignis, also nutzen Sie es
crontab
– Ed heilen
26. Januar 2014 um 16:49 Uhr