Comment implémenter l'exécution automatique de php tous les jours : 1. Installez crontab sur le serveur ; 2. Consultez la liste des tâches d'exécution planifiées de crontab 3. Définissez selon les règles de configuration de l'heure.
L'environnement d'exploitation de cet article : système linux5.9.8, PHP version 7.1, ordinateur Dell G3.
php ne peut pas être exécuté régulièrement tous les jours, seuls Java ou C le peuvent, car php ne touchera pas au code sans accéder à la page, mais il existe un moyen de sauver le pays
Vous écrivez une page que vous souhaitez exécuter régulièrement tous les jours jour , puis en fonction de votre système d'exploitation, effectuez une tâche planifiée et visitez cette page régulièrement. Cet article prend le système Linux comme exemple.
PHP implémente des tâches planifiées
systemctl status crond.service
yum install vixie-cron yum install crontabs
systemctl restart crond.service #启动服务 systemctl reload crond.service #重新载入配置 systemctl status crond.service #查看crontab服务状态 systemctl enable crond.service #开机自启动
crontab -u root -e #进入定时任务编辑
crontab -l
基本格式 : * * * * * 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列要运行的命令
tail -f /var/log/cron
*/2 * * * * curl -o /home/index.html www.baidu.com #每隔两分钟使用curl 访问www.baidu.com 并将结果写入/home/index.html 文件
00 * * * * lynx -dump https://www.yourdomain.com/script.php #当前时间的分钟数为00时,执行该定时任务
lynx -dump https://www.yourdomain.com/script.php #通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择
00 */2 * * * /usr/bin/php /home/www/script.php #直接用php去执行本地php文件
Cette instruction peut exécuter script.php via l'environnement php interne de Linux à 0 minute toutes les 2 heures. on n'y accède pas via l'URL, via Il est exécuté dans l'environnement du serveur, mais exécuté directement. Parce que l'environnement du serveur est contourné, l'efficacité est bien sûr beaucoup plus élevée.
Quant à savoir pourquoi vous devez utiliser /usr/bin/php, vous pouvez utiliser la commande : which php 或者 whereis php
View
Dans crontab, affichez les résultats de l'exécution dans un fichier. Vérifiez ensuite l'état d'exécution dans ce fichier. Par exemple :
*/1 * * * * /usr/bin/php /data/dou/web/api/cron.php >> /data/dou/web/cron.txt
Exécution continue des commandes :
Exécutées dans l'ordre (séparées par `;`)
cmd1; cmd2; cmd3;
Exécutée par ET logique (séparées par &&)
cmd1&&cmd2&&cmd3; cmd4;
Exécutée par OU logique : (séparées par ||)
cmd1||cmd2||cmd3; cmd4;
C'est-à-dire que lorsque la valeur de retour est 0, le ET logique continue de s'exécuter. Lorsque la valeur de retour n'est pas 0, le OU logique continue de s'exécuter. C'est la même chose que le ET logique et le OU logique. court-circuit du programme habituel (`?` est la valeur de retour, commande Lorsque l'exécution est correcte, la valeur de retour est 0. Vous pouvez la tester via echo $?, en recherchant spécifiquement "return")
combinaison :
cmd1;
cmd2||cmd3&&cmd4;
cmd5;
Exécutez d'abord cmd1 puis cmd2, si cmd2 renvoie Si la valeur passée est non-0, cmd3 sera exécuté Si la valeur renvoyée par cmd3 est 0, cmd4 sera exécuté, puis continuez à être exécuté dans l'ordre.
Exemple de règles de réglage de l'heure :
1 Exécutez régulièrement la règle toutes les minutes :
Exécutez toutes les 1 minute : */1 * * * * ou * * * * *
. Exécuter toutes les 5 minutes : */5 * * * *
2. Exécuter la règle toutes les heures :
Exécuter toutes les heures : 0 * * * *ou 0 */1 * * *
Exécution à 7 heures du matin tous les jours : 0 7. * * *
Exécution à 7h10 tous les jours : 10 7 * * *
3. Exécutez la règle régulièrement chaque jour :
Exécution tous les jours 0 0 * * *
4. Exécutez la règle une fois par semaine 0 0 * * 0
Exécutez la règle chaque mois 0 0 1 * *
Exécutez 0 0 1 1. *
5 * * * * Spécifiez la commande ls à exécuter à la 5ème minute de chaque heure
30 5 * * * ls Spécifiez la commande ls à exécuter à 5h30 chaque jour
30 7 8 * * ls précise la commande ls à exécuter à 7h30 le 8 de chaque mois
30 5 8 6 * ls précise la commande ls à exécuter à 17h30 le 8 juin de chaque année
30 6 * * 0 ls spécifie le 6 de chaque dimanche : 30 Exécutez la commande ls [Remarque : 0 signifie dimanche, 1 signifie lundi 1, et ainsi de suite. Il peut également être exprimé en anglais, sun signifie dimanche, mon signifie lundi, etc. ]
30 3 10,20 * * ls Exécute la commande ls à 15h30 le 10 et le 20 de chaque mois [Remarque : "," est utilisé pour connecter plusieurs périodes discontinues]
25 8-11 * * * ls Every day Exécutez la commande ls à la 25ème minute de 8 heures à 11 heures [Remarque : "-" est utilisé pour connecter des périodes consécutives]
*/15 * * * * ls Exécutez la commande ls toutes les 15 minutes [c'est-à-dire le 0 15 30 de chaque heure 45 Exécutez la commande ls en 60 minutes]
30 6 */10 * * ls Exécutez la commande ls à 6h30 tous les 10 jours de chaque mois [soit 6h30 le 1er, le 11 , le 21 et le 31 de chaque mois Exécutez la commande ls une fois. ]
Tutoriel vidéo PHP】
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!