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

Bagaimana untuk menjalankan php secara automatik setiap hari

藏色散人
Lepaskan: 2023-03-14 16:38:02
asal
4080 orang telah melayarinya

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
Salin selepas log masuk

Jika crontab tidak dipasang pada pelayan , anda boleh melaksanakan

yum install vixie-cron
yum install crontabs
Salin selepas log masuk

Arahan biasa

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

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

crontab -u root -e #进入定时任务编辑
Salin selepas log masuk

Lihat senarai tugas pelaksanaan berjadual crontab

crontab -l
Salin selepas log masuk

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列要运行的命令
Salin selepas log masuk

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
Salin selepas log masuk

Contoh

*/2 * * * * curl -o /home/index.html www.baidu.com #每隔两分钟使用curl 访问www.baidu.com 并将结果写入/home/index.html 文件
Salin selepas log masuk
00 * * * * lynx -dump https://www.yourdomain.com/script.php   #当前时间的分钟数为00时,执行该定时任务
Salin selepas log masuk
lynx -dump https://www.yourdomain.com/script.php  #通过lynx访问这个url。我们在使用中主要用到lynx、curl、wget来实现对url的远程访问,而如果要提高效率,直接用php去执行本地php文件是最佳选择
Salin selepas log masuk
00 */2 * * * /usr/bin/php /home/www/script.php  #直接用php去执行本地php文件
Salin selepas log masuk

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
Salin selepas log masuk

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

cmd1;
cmd2;
cmd3;
Salin selepas log masuk

Secara logik DAN Laksanakan (dipisahkan oleh &&)

cmd1&&cmd2&&cmd3;
cmd4;
Salin selepas log masuk

Secara logik atau laksanakan: (dipisahkan oleh ||)

cmd1||cmd2||cmd3;
cmd4;
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan