1. 程式人生 > >使用crontab自動執行php檔案

使用crontab自動執行php檔案

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

CentOS系統安裝crontab:

[[email protected] ~]# yum install vixie-cron
[[email protected] ~]# 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.時間如何設定可以去這裡學習http://www.cnblogs.com/OtisBlog/archive/2012/01/30/2332175.html

參考文章:http://os.51cto.com/art/201004/192442.htm

http://www.cnblogs.com/OtisBlog/archive/2012/01/30/2332175.html

相關推薦

使用crontab自動執行php檔案

crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。通常,crontab儲存的指令被守護程序啟用, crond常常在後臺執行,每一分鐘檢查是否有預定

centos和ubuntu crontab 定時執行php檔案

一 centos centos安裝crontab 1, yum install vixie-cron 2,yum install crontabs(提示已經安裝過的話,就不必安裝了) service crond status –檢視crond 狀態 service crond st

crontab 定時執行php指令碼檔案

PHP 安裝模式 首先我們必須先確認自己在LINUX Ubuntu 伺服器上php的安裝模式,以CGI 模組還是Apache模組方式安裝? 如果不確定php安裝模式,可以使用 phpinfo() 函式檢視:將<?php phpinfo(); ?> 寫在php檔

linux crontab定時任務執行php檔案

下面簡單介紹一下什麼是crontab crond是linux下用來週期性的執行某種任務或等待處理某些事件的一個守護程序,與windows下的計劃任務類似,當安裝完成作業系統後,預設會安裝此服務工具,並且會自動啟動crond程序,crond程序每分鐘會定期檢查是否有要執行的

當網站出現502時,若重啟PHP能成功,則執行如下操作 (Linux定時執行.php檔案)

問題:我的伺服器在一段時間的時候,執行幾百個網站時出現了502錯誤,通過我的分析,時php-fpm承受不了多個網站的壓力,就出現崩潰,那麼這是就需要在網站出現502時,重啟php-fpm解決(或者你可以選擇優化php-fpm的效能) 解決思路:當網站出現502時,若重啟PHP能成功,那麼就需要在

xampp安裝到可以執行 .php 檔案

一、xampp安裝 下載路徑:https://www.apachefriends.org/download.html (安裝這個以後不需要再安裝Apache 和 php了)        進入網站可以根據不同需求選擇不同的作業系統,自己的電腦是

crontab執行php指令碼問題記錄

crontab不執行指令碼檔案之前遇到個很多種情況: 1 指令碼沒有執行許可權 2 指令碼中用了相對路徑 執行路徑不對  3 指令碼本身問題 比如使用了$_SERVER等的變數   但是這次遇到的不一樣,/var/log/cron日誌中顯示了cron定時執行了指令碼,但是沒有生效

crontab執行php腳本問題記錄

問題 日誌 roo path 情況 $_server 相對路徑 顯示 usr crontab不執行腳本文件之前遇到個很多種情況: 1 腳本沒有執行權限 2 腳本中用了相對路徑 執行路徑不對 3 腳本本身問題 比如使用了$_SERVER等的變量 但是這次遇到的不一樣,/

Linux中crontab自動執行程式相關命令與常見的錯誤

在Linux/Unix系統中可以使用crontab命令(crond服務)來實現特定時間自動執行指令碼。 首先簡單介紹下crontab命令的基本規則: * * * * * 具體命令 每分 每時 每日 每月 每週 執行具體命令 例如: 1、每週五下午兩點執行echo “Hell

Linux下使用shell指令碼自動執行指令碼檔案

一、定時複製檔案   a、在/usr/local/wfjb_web_back目錄下建立 tomcatBack.sh檔案   檔案內容: ? 1 2 #將tomcat中的應用wfjb_web 複製到 /usr/local/wfjb_web_bac

在linux下利用crontab定時執行PHP指令碼

1、使用crontab &ndash;e編輯定時任務   內容為:   xx:xx:xx 執行一個test.php檔案   2、php檔案必須在檔案頭一行,加上直譯器路徑(就象perl做的那樣)   #!/usr/local/bin/php   PHP的

指令碼手動執行無誤,crontab自動執行出錯

今天設定的crontab任務沒有執行,檢視日誌發現: java:command not found這樣的錯誤 但是,我用java -version檢視,是可以顯示java的版本資訊的,也就是說我安裝了java,但crontab執行的時候沒有鳥它。 所以問題為: 我的指令

crontab定時執行php指令碼備份資料庫

2014年的時候用crontab定時執行php指令碼來備份資料庫,簡單的寫了個例項: db_backup.php程式碼: <?php date_default_timezone_set ('A

利用 Linux crontab 定時執行 PHP

啟動linux定時服務:service crond start 檢視當前定時任務: crontab -l 新增新定時任務:crontab -e 先是測試crontab對於普通任務能否執行: */1 * * * * date >> /opt/web/

crontab執行php無法連線到資料庫

我在my.cnf中註釋掉log-bin=mysql-bin和binlog_format=mixed後,無法啟動mysql 我重啟vps後,能啟動mysql啦 用web方式執行php,正常 但是在crontab裡執行的php指令碼,提示: Can't c

Julia: “.juliarc.jl” 的妙用:設定IDE啟動時,自動執行檔案或某行命令

    此文先感謝JuliaLangQQ群一個朋友的幫助!     比如在用Juno時,需要匯入一些檔案的路徑,作為工作目錄。這些檔案其實,不需要在Juno啟動時,進行人工啟動,完全可以設定為自動模式。也即順帶在啟動julia.exe後,也自動執行一下某些命令或一些檔案,這

ubuntu 下使用crontab自動執行命令

環境 ubuntu 16.04 一.新增任務 crontab -e 輸入一行命令,用於每一分鐘向a.txt裡面增加一行文字"a" * * * * * echo a >> /a.txt crontab檔案的基本格式如下所示 *     *    *     *   

Linux如何在開機時自動執行sh檔案

這個還是比較簡單的。 使用vim開啟 /etc/rc.local 在最後加上你要執行的.sh檔案路徑 即可。 具體實現: 1. vim /etc/rc.local 2. /home/run-dd.sh

php】如何執行php檔案

1. 開啟編輯器 <?php echo "Hello World"; ?>  儲存為test.php 放在xampp的htdocs資料夾下 2.執行xampp 3.開啟瀏覽器 就可以運行了(不可以直接右鍵用chrome等開啟 顯示不出來正確結果

命令列執行PHP檔案時如何傳遞引數?

Get,post,request可以接收到請求資料,如何在命令列執行php時,獲得傳遞到php指令碼的資料呢?在命令列下傳遞資料時已經沒有了Get和Post的概念,在指令碼內,使用$argc, $ar