使用crontab自動執行php檔案

2021-06-21 10:59:44 字數 2063 閱讀 4823

crontab命令常見於unix和類unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於「crontab」檔案中,以供之後讀取和執行。通常,crontab儲存的指令被守護程序啟用, crond常常在後台執行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。在這裡,我要介紹的是如何在centos系統安裝crontab。

centos系統安裝crontab:

[root@centos ~]# yum install vixie-cron

[root@centos ~]# yum install crontabs(

我執行這一步的時候,提示我已經安裝了,不知道啥時候安裝的)

說明:vixie-cron軟體包是cron的主程式;

crontabs軟體包是用來安裝、卸裝、或列舉用來驅動 cron 守護程序的**的程式。

cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:

/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

在centos系統中加入開機自動啟動:chkconfig --level 35 crond on

centos系統 crontab命令

功能說明:設定計時器。

語法:crontab [-u 《使用者名稱》][配置檔案] 或 crontab [-u 《使用者名稱》][-elr]

補充說明:cron是乙個常駐服務,它提供計時器的功能,讓使用者在特定的時間得以執行預設的指令或程式。只要使用者會編輯計時器的配置檔案,就可以使 用計時器的功能。其配置檔案格式如下:minute hour day month dayofweek command

引數: 

-e  編輯該使用者的計時器設定。 

-l  列出該使用者的計時器設定。 

-r  刪除該使用者的計時器設定。 

-u《使用者名稱》  指定要設定計時器的使用者名稱。

在centos系統中,以上步驟就完成了安裝crontab的安裝工作。

簡單的說了一下原理,下面解釋應該怎麼使用。

在使用之前首先通過which php命令找到自己的php安裝到了**,西面能用到,我的列印出來是/usr/local/php/bin/php

為了知道自己寫的php到底有沒有被呼叫,在php寫了乙個簡單的檔案寫入函式,我將當前的時間寫入到乙個test.txt中,只要檢視test.txt, 我就知道php是有沒有呼叫,什麼時候呼叫,這樣就可以大致看出來,自己設定的呼叫時間是不是被爭取執行了。

<?php

$fp = fopen("test.txt","a+");

fwrite($fp, date('y-m-d h:i:s')."****"."\r\n");

fclose($fp);

?>

php寫好後然後配置crontab:

在命令列輸入crontab -e,這時會開啟乙個文字編輯器,上面顯示的是你寫入的呼叫列表,如果以前沒有編輯過,則開啟檔案裡面什麼都沒有

在檔案裡面輸入*/1 * * * * /usr/local/php/bin/php test.php,然後儲存退出。

在"*/1 * * * * /usr/local/php/bin/php test.php"中,"/usr/local/php/bin/php"是我的php位址,上面已經說過,可以用"which php"命令獲取到,如果,你這樣寫php檔案還是沒有被呼叫,你可以嘗試將"/usr/local/php/bin/php"後面加上-f。"*/1 * * * * "這段字串定義了,後面的命令呼叫的時間,本例中是每分鐘呼叫一次test.php.時間如何設定可以去這裡學習

參考文章:

ubuntu下crontab 定時執行php指令碼

有些時候需要定時自動執行一些指令碼檔案,如傳送郵件,寫入日誌等 首先檢視phpinfo 若phpinfo 中 server api 為 apache 2.0 handler 則為apache模組安裝模式,若為 cgi 則為cgi模組安裝模式 啟動並執行 確認ubuntu系統已經安裝了php5 cli...

crontab 設定指令碼自動執行命令

使用crontab你可以在指定的時間執行乙個shell指令碼或者一系列linux命令。例如系統管理員安排乙個備份任務使其每天都執行 如何往 cron 中新增乙個作業?crontab e 0 5 root bin backup.sh 這將會在每天早上5點執行 root bin backup.sh cr...

Linux下crontab,指令碼自動執行

為了進行指令碼的自動執行,看了下crontab的用法。任務排程的crond常駐命令 crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。而linux任務排程的工作主...