如果想要讓主機定時執行像是每天固定時段清除無用資料,或者發送電子信,可以透過cron job設定指令,就能夠讓系統定時的去觸發任務。

今天來說說,如何在Cpanel設置Cron job任務。

Cpanel Cron job操作流程

要使用Cron job我們需要先登入Cpanel管理介面,在控制面板找到[進階]→[Cron job]。

cpanel cron job

設定 Cron job 任務 

在Cron job頁找到如下圖的部分,這邊需要設定兩個部分,一個是設定觸發時間,另一個是觸發的指令。

要使用Cron job必須要懂得一些Linux指令,不然有可能會發生錯誤。

02.JPG

設定觸發時間點

我們可以在一般設定,去選擇Cron job的任務,什麼時候觸發任務。例如:每天的00點,或是每個小時執行一次,每小時執行兩次....

03.gif

設定指令

這邊的指令是執行Linux的命令,所以在下指令之前,最好懂一些Linux會比較好。假如我們要用php 執行某個檔案

04.JPG

這個表示執行linux當中的什麼軟體,這邊是執行php

/usr/local/bin/php

至於 /usr/local/bin 這個並不是絕對的,要看你的cpanel把php裝在哪個路徑。而且不同版本的Cpanel也會有些差異。

指令範例

以Cpanel 72版本的官方給的範例,是長這樣的。但是Aidec發現到,照著它的範例是無法正確執行的。

/usr/local/bin/php /home/demo08tech/public_html/path/to/cron/script

要改成下面這樣才能夠執行。原因有可能是主機服務商在裝Cpanel時,不是按照預設路徑。

/usr/bin/php /home/demo08tech/public_html/path/to/cron/script

而在更早期的版本,只需要輸入這樣就可以。

php /home/demo08tech/public_html/path/to/cron/script

這個實際會因不同的主機商,而有所不同。所以無法使用的話,最好的方式就是直接去問主機商。

實際範例

假如你有一個php的腳本放在public_html/send_mail.php ,你想要每天00點定時執行一次,可以這樣設定。

05.JPG

指令

/usr/bin/php /home/demo08tech/public_html/send_mail.php 

當中的 demo08tech 每台虛擬主機是不一樣的,這個可以在Cron job的範例找到,或者去[檔案管理員]也可以找到。

06.JPG

目前 Cron job

我們可以在這邊檢視所有目前添加的cron job任務,我們可以對這些任務進行修改或刪除的動作。

07.JPG

重要提示

有個需要特別注意的事,使用Cron job執行的php腳本,跟我們從瀏覽器執行不一樣。所以假如原本的那個頁面是透過框架之類的動態載入的話

使用cron job可能會出錯,因為它並不會去加載你使用的框架,除非你在那頁面有去引入。使用Cron job執行的php腳本,就僅是直接執行那頁腳本

什麼轉發路由,自動載入的...只要在那頁腳本沒有寫入或引入就通通不會執行。


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/cpanel-cron-job