Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menjalankan php secara automatik setiap hari

Bagaimana untuk menjalankan php secara automatik setiap hari

藏色散人
藏色散人asal
2021-12-30 09:34:264105semak imbas

Cara melaksanakan operasi PHP secara automatik setiap hari: 1. Pasang crontab pada pelayan 2. Lihat senarai tugas pelaksanaan berjadual crontab 3. Tetapkan mengikut peraturan tetapan masa.

Bagaimana untuk menjalankan php secara automatik setiap hari

Persekitaran pengendalian artikel ini: sistem linux5.9.8, PHP versi 7.1, komputer Dell G3.

php tidak boleh dilaksanakan secara kerap setiap hari, hanya java atau c sahaja yang boleh, kerana php tidak akan menyentuh kod tanpa mengakses halaman, tetapi ada cara untuk menyelamatkan negara

Anda menulis halaman Ia adalah halaman yang anda ingin laksanakan secara tetap setiap hari, dan kemudian bergantung pada sistem pengendalian anda, lakukan tugas yang dijadualkan dan lawati halaman ini dengan kerap. Artikel ini mengambil sistem Linux sebagai contoh.

PHP melaksanakan tugas berjadual

Mula-mula gunakan arahan untuk menyemak sama ada perkhidmatan sedang berjalan

systemctl status crond.service

Jika crontab tidak dipasang pada pelayan , anda boleh melaksanakan

yum install vixie-cron
yum install crontabs

Arahan biasa

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

Selepas memulakan perkhidmatan, anda boleh memasukkan arahan (tekan i untuk mengedit)

crontab -u root -e #进入定时任务编辑

Lihat senarai tugas pelaksanaan berjadual crontab

crontab -l

Parameter berkaitan

基本格式 :  
*    *  *   *   *  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列要运行的命令

Lihat log dinamik (jika terdapat banyak 33 bait output yang dihantar dan dapatkan status 0x004b#012, sila pergi kepada: https://bbs.aliyun .com/simple/t135851.html):

tail -f /var/log/cron

Contoh

*/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文件

Pernyataan ini boleh digunakan pada 0 minit setiap 2 jam , laksanakan skrip.php melalui persekitaran PHP dalaman Linux Ambil perhatian bahawa ini tidak diakses melalui URL dan dilaksanakan melalui persekitaran pelayan, tetapi dilaksanakan secara langsung Kerana persekitaran pelayan dipintas, kecekapan adalah tentu lebih tinggi.

Mengenai mengapa anda perlu menggunakan /usr/bin/php, anda boleh menggunakan arahan: which php 或者 whereis php Lihat

Dalam crontab , hasil pelaksanaan akan menjadi Output kepada fail. Kemudian semak status pelaksanaan dalam fail ini. Contohnya:

*/1 * * * * /usr/bin/php /data/dou/web/api/cron.php >> /data/dou/web/cron.txt

Pelaksanaan arahan yang berterusan:
Laksanakan mengikut tertib (dipisahkan dengan `;`)

cmd1;
cmd2;
cmd3;

Secara logik DAN Laksanakan (dipisahkan oleh &&)

cmd1&&cmd2&&cmd3;
cmd4;

Secara logik atau laksanakan: (dipisahkan oleh ||)

cmd1||cmd2||cmd3;
cmd4;

iaitu logik apabila nilai pulangan ialah 0 Dan teruskan untuk melaksanakan, logik ATAU terus dilaksanakan apabila nilai yang dikembalikan bukan 0, dan logik program biasa adalah sama dengan logik ATAU litar pintas (`?` ialah nilai yang dikembalikan, dan nilai yang dikembalikan ialah 0 apabila perintah itu dilaksanakan dengan betul Pass echo $? .

Contoh peraturan penetapan masa:

1. Laksanakan peraturan dengan kerap setiap minit:
Laksanakan setiap 1 minit: */1 * * * *atau * * * * *

Laksanakan setiap 5 minit: */5 * * * *

2 Laksanakan peraturan setiap jam: Pelaksanaan setiap jam: 0 * * * * atau 0 */1. * * *

Pelaksanaan setiap hari pada pukul 7 pagi: 0 7 * * *

Setiap hari pada pukul 7 pagi. Laksanakan pada 10 mata: 10 7 * * *

3 :

Lakukan 0 setiap hari 0 * * *


4 Laksanakan peraturan dengan kerap setiap minggu:
Lakukan setiap minggu 0 0 * * 0

5 setiap bulan:

Laksanakan 0 0 1 * * setiap bulan

6 Laksanakan peraturan secara berkala setiap tahun:

Laksanakan setiap tahun 0 0 1 1 *

7

5 * * * * Tentukan arahan ls untuk dilaksanakan sekali setiap jam pada minit ke-5
30 5 * * * ls Tentukan setiap hari Pada 5:30, jalankan arahan ls

30 7 8 * * ls. Tentukan perintah ls untuk dilaksanakan pada 7:30 pada 8 haribulan

30 5 8 6 * ls
30 6 * * 0 ls menentukan untuk melaksanakan perintah ls pada 6:30 setiap Ahad [Nota: 0 bermaksud Ahad, 1 bermaksud Isnin 1, dan seterusnya, ia juga boleh dinyatakan dalam bahasa Inggeris, matahari bermaksud Ahad, mon bermakna hari dalam minggu Tunggu. ]

30 3 10,20 * * ls Laksanakan arahan ls pada 3:30 pada 10 dan 20 setiap bulan [Nota: "," digunakan untuk menyambung berbilang tempoh masa tidak berterusan]

25 8-11 * * * ls Laksanakan arahan ls pada minit ke-25 dari jam 8 hingga 11 setiap hari [Nota: "-" digunakan untuk menyambung tempoh berturut-turut]
*/15 * * * * ls Laksanakan arahan ls setiap 15 minit [iaitu setiap Jalankan arahan ls pada 0, 15, 30, 45 dan 60 minit jam]
30 6 */10 * * ls pada setiap bulan, laksanakan arahan ls pada 6:30 setiap 10 hari [iaitu, 1, 11, dan 21 setiap bulan] , laksanakan perintah ls sekali pada 6:30 pada 31hb. ]

[Pembelajaran yang disyorkan:
Tutorial video PHP
]

Atas ialah kandungan terperinci Bagaimana untuk menjalankan php secara automatik setiap hari. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn