日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件

發(fā)布時間:2025/3/21 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是Cron和Crontab

Unix和Linux系統(tǒng)的各個發(fā)行版本基本都支持Cron,Cron /Crontab允許我們在設(shè)定的時間自動執(zhí)行或定時執(zhí)行某個任務(wù),如應(yīng)用程序或腳本。更詳細(xì)的概念和使用方法介紹請點(diǎn)擊Cron和Crontab是什么?

現(xiàn)在我們要討論的是,許多的php程序員都可以很快完成Web應(yīng)用的開發(fā),PHP代碼的調(diào)試也比PERL或C語言容易很多,不過經(jīng)常會碰到有php程序員會問:如何在linux系統(tǒng)中使用crontab來運(yùn)行Php腳本?比如ubuntu crontab 定時執(zhí)行php代碼。

Ubuntu 如何使用Crontab定時自動執(zhí)行PHP腳本

現(xiàn)在遠(yuǎn)方博客也碰到了需要在指定的時間運(yùn)行php腳本的情況,比如定時進(jìn)行網(wǎng)站的數(shù)據(jù)統(tǒng)計(jì)、自動執(zhí)行數(shù)據(jù)庫備份任務(wù)、定時發(fā)送email等等。

如果我們不使用Cron來執(zhí)行php腳本,或許我們會采用php include的方法。比如在index.php 中添加代碼:<?php include "crontab.php"?>。當(dāng)訪客通過瀏覽器訪問http://farlee.info/index.php的時候,自動執(zhí)行了crontab.php。當(dāng)然這只是一種思路,這種方法并不能指定時間定時運(yùn)行PHP腳本,同時也給index.php帶來了額外的服務(wù)器消耗。而Linux Ubuntu Crontab 可以很好地完成php 定時任務(wù),這也是寫這篇關(guān)于cron的文章的目的。

然后首先想到的是和windows 系統(tǒng)下的計(jì)劃任務(wù)一樣,通過在windows中使用php的命令行模式執(zhí)行計(jì)劃任務(wù)實(shí)現(xiàn)定時自動執(zhí)行php腳本,這是一個思路,另外一個思路就是直接在瀏覽器中訪問php腳本的地址,定時自動打開瀏覽器訪問該網(wǎng)址,執(zhí)行php腳本。因此在Ubuntu服務(wù)器系統(tǒng)下,同樣有類似的兩種思路。下面http://farlee.info/逐步介紹使用Ubuntu Crontab定時執(zhí)行PHP腳本的設(shè)置方法。

PHP 安裝模式

首先我們必須先確認(rèn)自己在LINUX Ubuntu 服務(wù)器上php的安裝模式,以CGI 模塊還是Apache模塊方式安裝? 如果不確定php安裝模式,可以使用 phpinfo() 函數(shù)查看:將<?php phpinfo(); ?> 寫在php文件中上傳到網(wǎng)站服務(wù)器,訪問該頁面,就在頁面頂部我們找到“Server API”,如果類似“Apache 2.0 Handler”,那么就是apache模塊;否則php是CGI 模式(shell 命令行模式)。這兩種不同的php安裝模式,正對應(yīng)于前面介紹的ubuntu crontab 定時執(zhí)行php的兩種解決方法。

CGI 編譯

如果Server API是cgi,那么在需要cron執(zhí)行的php腳本的第一行額外加入一段代碼#!/usr/bin/php -q(類似PERL語法),指定服務(wù)器中php可執(zhí)行程序的位置,具體步驟如下:

1. 確認(rèn)Ubuntu系統(tǒng)已經(jīng)安裝了php5-cli模塊,安裝命令:apt-get install php5-cli。在目錄 /usr/bin/php下生成 php可執(zhí)行程序。

2. 編輯待定時執(zhí)行的php腳本文件crontab.php,如:

#!/usr/bin/php -q

$file = "/var/www/".date('H').'_'.date('i').'_'.date('s').'.txt';

file_put_contents($file,date('Y-m-d'));

?>

3. 編輯 crontab 任務(wù):

打開終端,輸入命令:crontab -e,

Select an editor. To change later, run 'select-editor'.

1. /bin/ed

2. /bin/nano

3. /usr/bin/vim.tiny

選擇一個Ubuntu編輯器后,編輯/tmp/crontab.AuN7IQ/crontab 文件:

# m h dom mon dow command

在下面添加定時執(zhí)行命令:

* * * * * php /path/to/your/cron.php

5個星號分別代表定時指定每分、小時、日、月、周。如每天的下午7點(diǎn)執(zhí)行crontab.php,命令為:

* 19 * * * php /var/www/cron/crontab.php

然后按Ctrl+O保存,Ctrl+X退出。

4. 執(zhí)行以下Crontab命令行

Shell> crontab crontab

確認(rèn)crontab.php的權(quán)限為可執(zhí)行("chmod 755 /var/www/cron/crontab.php")。

Apache 模塊

如果php安裝是以 apache 模式運(yùn)行的,那么在要在ubuntu服務(wù)器定時執(zhí)行的php腳本開頭就不用加 #!/usr/bin/php -q 這一行。php腳本在ubuntu 通過crontab的定時執(zhí)行通過Lynx瀏覽器的自動訪問來完成。

1. Lynx瀏覽器安裝。

Lynx瀏覽器是一款輕便的web瀏覽器,使用于大部分Unix 和Linux系統(tǒng)環(huán)境。安裝命令:sudo apt-get install lynx。

2. 編輯cron任務(wù),命令crontab -e

* * * * * lynx -dump http://farlee.info/cron.php

注意這個地址最好用絕對地址,包含“http://”的完整url。

3. 再次執(zhí)行下面的命令行:

Shell> crontab crontab

因?yàn)槲以趗buntu安裝的是lamp server,所以采用第二種Apache 模塊的方法就可以使用crontab定時執(zhí)行php腳本代碼。

總結(jié)

以上是生活随笔為你收集整理的ubuntu 定时执行php文件,Ubuntu crontab 定时执行php脚本文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。