Heim > Backend-Entwicklung > PHP-Problem > So führen Sie PHP jeden Tag automatisch aus

So führen Sie PHP jeden Tag automatisch aus

藏色散人
Freigeben: 2023-03-14 16:38:02
Original
4107 Leute haben es durchsucht

So implementieren Sie die automatische Ausführung von PHP jeden Tag: 1. Installieren Sie crontab auf dem Server. 2. Sehen Sie sich die Liste der geplanten Ausführungsaufgaben von crontab an. 3. Stellen Sie sie gemäß den Zeiteinstellungsregeln ein.

So führen Sie PHP jeden Tag automatisch aus

Die Betriebsumgebung dieses Artikels: Linux5.9.8-System, PHP-Version 7.1, Dell G3-Computer.

PHP kann nicht regelmäßig jeden Tag ausgeführt werden, nur Java oder C, da PHP den Code nicht berührt, ohne auf die Seite zuzugreifen, aber es gibt eine Möglichkeit, das Land zu retten

Sie schreiben eine Seite, die Sie regelmäßig jeden Tag ausführen möchten Tag ausführen und dann je nach Betriebssystem eine geplante Aufgabe ausführen und diese Seite regelmäßig besuchen. In diesem Artikel wird das Linux-System als Beispiel verwendet.

PHP implementiert geplante Aufgaben

Verwenden Sie zunächst den Befehl, um zu überprüfen, ob der Dienst ausgeführt wird

systemctl status crond.service
Nach dem Login kopieren

Wenn crontab nicht auf dem Server installiert ist, können Sie

yum install vixie-cron
yum install crontabs
Nach dem Login kopieren

allgemeine Befehle

systemctl restart crond.service #启动服务 systemctl reload crond.service #重新载入配置 systemctl status crond.service #查看crontab服务状态 systemctl enable crond.service #开机自启动
Nach dem Login kopieren

ausführen. Sie können den Befehl eingeben (zum Bearbeiten i drücken). Bitte wechseln Sie zu: https://bbs.aliyun.com/simple/t135851.html):

crontab -u root -e #进入定时任务编辑
Nach dem Login kopieren

Beispiel

crontab -l
Nach dem Login kopieren
基本格式 :  
*    *  *   *   *  command  
分  时  日  月  周   命令  
第1列表示分钟1~59 每分钟用*或者 */1表示 (每分钟用或者 */1表示,/n表示每n分钟,例如*/8就是每8分钟的意思,下面也是类推)
第2列表示小时1~23(0表示0点)  
第3列表示日期1~31  
第4列表示月份1~12  
第5列标识号星期0~6(0表示星期天)  
第6列要运行的命令
Nach dem Login kopieren
tail -f /var/log/cron
Nach dem Login kopieren
*/2 * * * * curl -o /home/index.html www.baidu.com #每隔两分钟使用curl 访问www.baidu.com 并将结果写入/home/index.html 文件
Nach dem Login kopieren

Diese Anweisung kann script.php alle 2 Stunden bei 0 Minuten über die Linux-interne PHP-Umgebung ausführen Der Zugriff erfolgt nicht über die URL, sondern über die Ausführung in der Serverumgebung, da die Serverumgebung umgangen wird, ist die Effizienz natürlich viel höher.

Um herauszufinden, warum Sie /usr/bin/php verwenden müssen, können Sie den folgenden Befehl verwenden:

Ansicht

Geben Sie in Crontab die Ausführungsergebnisse in eine Datei aus. Überprüfen Sie dann den Ausführungsstatus in dieser Datei. Zum Beispiel:

00 * * * * lynx -dump https://www.yourdomain.com/script.php   #当前时间的分钟数为00时,执行该定时任务
Nach dem Login kopieren
which php 或者 whereis php kontinuierliche Ausführung von Befehlen:

executed in der Reihenfolge (getrennt durch `;)

lynx -dump https://www.yourdomain.com/script.php  #通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择
Nach dem Login kopieren

executed durch logisch und (getrennt durch &&) ||)

00 */2 * * * /usr/bin/php /home/www/script.php  #直接用php去执行本地php文件
Nach dem Login kopieren

Das heißt, wenn der Rückgabewert 0 ist, wird das logische UND weiterhin ausgeführt. Wenn der Rückgabewert nicht 0 ist, wird das logische ODER weiterhin ausgeführt. Es ist dasselbe wie das logische UND und das logische ODER Kurzschluss des üblichen Programms („?“ ist der Rückgabewert, Befehl Wenn die Ausführung korrekt ist, ist der Rückgabewert 0. Sie können ihn über echo $? testen und gezielt nach „return“ suchen) Kombination:

cmd1; cmd2||cmd3&&cmd4;

cmd5;Führen Sie zuerst cmd1 und dann cmd2 aus. Wenn der übergebene Wert nicht 0 ist, wird cmd3 ausgeführt. Wenn der von cmd3 zurückgegebene Wert 0 ist, wird cmd4 ausgeführt. und dann nacheinander weiter ausgeführt werden.

Beispiel für Zeiteinstellungsregeln:

1 Regelmäßig jede Minute ausführen:

Alle 1 Minute ausführen: */1 * * * * oder * * * * *

Alle 5 Minuten ausführen: */5 * * * *


2. Die Regel stündlich ausführen:

Jede Stunde ausführen: 0 * * * *oder 0 */1 * * *

Jeden Tag um 7 Uhr ausführen: 0 7 * * *Ausführung jeden Tag um 7:10 Uhr: 10 7 * * *

3. Führen Sie die Regel regelmäßig jeden Tag aus:

Ausführung jeden Tag 0 0 * * *

4. Führen Sie die Regel regelmäßig jede Woche aus:

Führen Sie die Regel einmal pro Woche aus 0 0 * * 0


5. Führen Sie die Regel regelmäßig jeden Monat aus:
Führen Sie die Regel jeden Monat aus 0 0 1 * *

6. Führen Sie die Regel regelmäßig jedes Jahr aus:

Führen Sie 0 0 1 1 aus *

7 jedes Jahr. Andere Beispiele

5 * * * * Geben Sie den ls-Befehl an, der zur 5. Minute jeder Stunde ausgeführt werden soll
30 5 * * * ls Geben Sie den ls-Befehl an, der jeden Tag um 5:30 Uhr ausgeführt werden soll

30 7 8 * * ls gibt den ls-Befehl an, der am 8. eines jeden Monats um 7:30 Uhr ausgeführt werden soll

30 5 8 6 * ls gibt den ls-Befehl an, der am 8. Juni jedes Jahres um 5:30 Uhr ausgeführt werden soll
30 6 * * 0 ls gibt die 6 jedes Sonntags an: 30 Führen Sie den ls-Befehl aus [Hinweis: 0 bedeutet Sonntag, 1 bedeutet Montag, 1 usw. Es kann auch auf Englisch ausgedrückt werden, sun bedeutet Sonntag, mon bedeutet Montag usw. ]

30 3 10,20 * * ls Führen Sie den ls-Befehl um 3:30 Uhr am 10. und 20. jedes Monats aus. [Hinweis: "," wird verwendet, um mehrere diskontinuierliche Zeiträume zu verbinden]

25 8-11 * * * ls Alle Tag Führe den ls-Befehl in der 25. Minute von 8 bis 11 Uhr aus [Hinweis: „-“ wird verwendet, um aufeinanderfolgende Zeiträume zu verbinden]
*/15 * * * * ls Führe den ls-Befehl alle 15 Minuten aus [d. h. 0 15 30 von jeder Stunde 45 Führen Sie den ls-Befehl in 60 Minuten aus]

30 6 */10 * * ls Führen Sie den ls-Befehl alle 10 Tage in jedem Monat um 6:30 Uhr aus [d. h. 6:30 Uhr am 1., 11., 21., und 31. jedes Monats Führen Sie den Befehl ls einmal aus. ]


【Empfohlenes Lernen:
PHP-Video-Tutorial


Das obige ist der detaillierte Inhalt vonSo führen Sie PHP jeden Tag automatisch aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage