PHP通過Crontab實現定時任務

2021-09-01 14:51:25 字數 2647 閱讀 7109

php本身是沒有定時功能的,所以要實現定時任務就需要借助其他工具。而linux伺服器下的crontab定時工具就為我們提供了很方便的定時功能。

crontab是乙個linux下的定時執行工具。所有使用者定義的 crontab 都被儲存在/var/spool/cron 目錄中,並使用建立它們的使用者身份來執行。某使用者以自己的身份建立乙個 crontab 專案時,首先登入,然後鍵入 crontab -e 命令來編輯該使用者的 crontab。該檔案使用的格式和 /etc/crontab 相同。當對 crontab 所做的改變被儲存後,該 crontab 檔案就會根據該使用者名稱被儲存,並寫入檔案 /var/spool/cron/username 中。cron 守護程序每分鐘都檢查 /etc/crontab 檔案、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發現了改變,它們就會被載入記憶體。這樣,當某個 crontab 檔案改變後就不必重新啟動守護程序了。

安裝crontab:

yum install crontabs

說明:/sbin/service crond start //啟動服務

/sbin/service crond stop //關閉服務

/sbin/service crond restart //重啟服務

/sbin/service crond reload //重新載入配置

檢視crontab服務狀態:service crond status

手動啟動crontab服務:service crond start

檢視crontab服務是否已設定為開機啟動,執行命令:ntsysv

加入開機自動啟動:

chkconfig –level 35 crond on

每一小時執行myscript.php如下:

00 * * * * /usr/local/bin/php /home/john/myscript.php
如果php指令碼可以通過url觸發,可以使用 lynx 或 curl 或 wget 來配置你的crontab。

下面的例子是使用lynx文字瀏覽器訪問url來每小時執行php指令碼。lynx文字瀏覽器預設使用對話方式開啟url。但是,像下面的,我們在lynx命令列中使用-dump選項來把url的輸出轉換來標準輸出。

00 * * * * lynx -dump
下面的例子是使用curl訪問url來每5分執行php指令碼。curl預設在標準輸出顯示輸出。使用」curl -o」選項,你也可以把指令碼的輸出轉儲到臨時檔案。

*/5 * * * * /usr/bin/curl -o temp.txt
下面的例子是使用wget訪問url來每10分執行php指令碼。-q選項表示安靜模式。」-o temp.txt」表示輸出會傳送到臨時檔案。

*/10 * * * * /usr/bin/wget -q -o temp.txt
crontab 格式:

基本格式 :

分鐘   小時   日   月   星期   命令

第1列表示分鐘1~59 每分鐘用*或者 */1表示

第2列表示小時1~23(0表示0點)

第3列表示日期1~31

第4列 表示月份1~12

第5列標識號星期0~6(0表示星期天)

第6列要執行的命令

記住幾個特殊符號的含義: 

「*」代表取值範圍內的數字, 

「/」代表」每」, 

「-」代表從某個數字到某個數字, 

「,」分開幾個離散的數字 

crontab檔案的一些例子: 

上面的例子表示每晚的21:30重啟apache。 

上面的例子表示每月1、10、22日的4 : 45重啟apache。 

上面的例子表示每週

六、週日的1 : 10重啟apache。 

上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。 

上面的例子表示每星期六的11 : 00 pm重啟apache。 

每一小時重啟apache 

晚上11點到早上7點之間,每隔一小時重啟apache 

每月的4號與每週一到週三的11點重啟apache 

centos系統crontab實現自動定時重啟教程

例如 設定每天凌晨5點重啟的方法 使用ssh工具成功登陸伺服器後,執行如下命令 crontab e 按insert鍵,進入編輯模式 然後在文件中輸入 0 5 sbin reboot 注意中間的空格,0 5表示每天凌晨四點重啟 以此類推 0 6表示凌晨6點.編輯好後按esc鍵退出編輯模式。鍵入 wq ...

linux使用crontab實現PHP執行定時任務

首先說說cron,它是乙個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 crontab 都被儲存在 var spool cron 目錄中,並使用建立它們的使用者身份來執行。要以某使用者身份建立乙個 crontab 專案,登入為...

Linux使用crontab實現PHP執行定時任務

安裝crontab yum install crontabs說明 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin service crond restart 重啟服務 sbin service crond reload ...