如果想要讓主機定時執行像是每天固定時段清除無用資料,或者發送電子信,可以透過cron job設定指令,就能夠讓系統定時的去觸發任務。
今天來說說,如何在Cpanel設置Cron job任務。
Cpanel Cron job操作流程
要使用Cron job我們需要先登入Cpanel管理介面,在控制面板找到[進階]→[Cron job]。
設定 Cron job 任務
在Cron job頁找到如下圖的部分,這邊需要設定兩個部分,一個是設定觸發時間,另一個是觸發的指令。
要使用Cron job必須要懂得一些Linux指令,不然有可能會發生錯誤。
設定觸發時間點
我們可以在一般設定,去選擇Cron job的任務,什麼時候觸發任務。例如:每天的00點,或是每個小時執行一次,每小時執行兩次....
設定指令
這邊的指令是執行Linux的命令,所以在下指令之前,最好懂一些Linux會比較好。假如我們要用php 執行某個檔案
這個表示執行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點定時執行一次,可以這樣設定。
指令
/usr/bin/php /home/demo08tech/public_html/send_mail.php
當中的 demo08tech
每台虛擬主機是不一樣的,這個可以在Cron job的範例找到,或者去[檔案管理員]也可以找到。
目前 Cron job
我們可以在這邊檢視所有目前添加的cron job任務,我們可以對這些任務進行修改或刪除的動作。
重要提示
有個需要特別注意的事,使用Cron job執行的php腳本,跟我們從瀏覽器執行不一樣。所以假如原本的那個頁面是透過框架之類的動態載入的話
使用cron job可能會出錯,因為它並不會去加載你使用的框架,除非你在那頁面有去引入。使用Cron job執行的php腳本,就僅是直接執行那頁腳本
什麼轉發路由,自動載入的...只要在那頁腳本沒有寫入或引入就通通不會執行。
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/cpanel-cron-job
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記