1. 程式人生 > >linux使用crontab實現php定時任務

linux使用crontab實現php定時任務

首先說說cron,它是一個linux下的定時執行工具。根使用者以外的使用者可以使用 crontab 工具來配置 cron 任務。所有使用者定義的 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

crontab命令:

功能說明:設定計時器。

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

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

參  數:
-e  編輯該使用者的計時器設定。
-l  列出該使用者的計時器設定。
-r  刪除該使用者的計時器設定。
-u<使用者名稱稱>  指定要設定計時器的使用者名稱稱。

crontab 格式:

基本格式 :

分鐘   小時   日   月   星期   命令

*        *      *    *     *       *

第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列 表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要執行的命令

記住幾個特殊符號的含義: 
“*”代表取值範圍內的數字, 
“/”代表”每”, 
“-”代表從某個數字到某個數字, 
“,”分開幾個離散的數字

# Use the hash sign to prefix a comment
# +—————- minute (0 – 59)
# | +————- hour (0 – 23)
# | | +———- day of month (1 – 31)
# | | | +——- month (1 – 12)
# | | | | +—- day of week (0 – 7) (Sunday=0 or 7)
# | | | | |
# * * * * * command to be executed

crontab幾個例子如下:

(1)第一個例子。

30 21 * * * /etc/init.d/nginx restart
每晚的21:30重啟 nginx。

(2)第二個例子,也就是本教程測試的例子

* * * * * /usr/bin/php -f /root/test.php >> test.log

每一分鐘執行/root/test.php檔案,將結果輸出到test.log中。

完成了上面基礎工作後,就來看看怎麼使用crontab定時執行PHP指令碼:

(1)我在/root下新建test.php檔案,內容如下:

.程式碼如下:
<?php
        #!/usr/bin/php -q
        echo  date('Y-m-d H:i:s')."from http://www.phpddt.com \n";
?>

說明:你可以用whereis php查詢php執行檔案位置。

相關推薦

linux使用crontab實現php定時任務

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

PHP實現執行定時任務的幾種思路詳解

編輯 exists sched ebs conn 多系統 環境 提高效率 pac HP本身是沒有定時功能的,PHP也不能多線程。PHP的定時任務功能必須通過和其他工具結合才能實現,例如WordPress內置了wp-

PHP實現執行定時任務的linux思路詳解

由於公司需要定時對淘寶店家的資訊進行獲取並更新資料庫 所以需要定時執行任務。 PHP本身是沒有定時功能的,PHP也不能多執行緒。PHP的定時任務功能必須通過和其他工具結合才能實現,例如WordPress內建了wp-cron的功能,很厲害。本文,我們就來解析幾種常見的php

RabbitMQ使用延遲佇列實現一次性定時任務(php版)

本文建立在讀者對RabbitMQ的基礎瞭解上 本文延遲佇列實現參照 https://blog.csdn.net/u012119576/article/details/74677835 對相關概念的理解參照 https://blog.csdn.net/samxx8/arti

springboot和quartz整合實現動態定時任務(持久化單節點)

依賴 1.5 ostc read 自動 1.8 自動註入 etc string   Quartz是一個完全由java編寫的開源作業調度框架,為在Java應用程序中進行作業調度提供了簡單卻強大的機制,它支持定時任務持久化到數據庫,從而避免了重啟服務器時任務丟失,支持分布式多節

windows處理PHP定時任務

可執行文件 完成 png 一個 時間 觸發器 home 調用 5.5 我用的是bat文件處理定時任務,bat文件是可執行文件,由一系列命令構成,其中可以包含對其他程序的調用 創建一個bat文件,編輯文本,添加需要的php文件,前面路徑是你的PHP執行程序,後面路徑是文件

Storm框架:如何實現crontab定時任務

Storm除了能對訊息流進行處理,還能實現crontab定時任務。 只要在bolt中配置TOPOLOGY_TICK_TUPLE_FREQ_SECS項即可實現。 @Override public Map<String, Object> getComponentConfiguration() {

利用Apache PropertiesConfiguration實現spring 定時任務配置的及時重新整理

import java.util.Date; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.Propertie

Spring整合Quartz框架實現分散式定時任務

1、叢集使用定時任務的問題:    目前大部分在叢集中處理定時任務的方式不是正真的分散式處理方式,而是一種偽分散式,這種方式存在一個明顯的缺陷就是當叢集中機器宕機, 那麼整個定時任務就會掛掉或者不能一次性跑完,會對業務產生嚴重的影響。   而且在叢集環境中,

SpringBoot系列5-定時任務-springboot整合quartz實現動態定時任務

springboot有自帶的定時任務為什麼還要使用quartz 使用springboot自帶的定時任務可以很簡單很方便的完成一些簡單的定時任務,但是我們想動態的執行我們的定時任務就比較困難了。然而使用quartz卻可以很容易的管理我們的定時任務,很容易動態的操作定時任務。下面我們就講解下

Linux下實現Mysql定時任務備份資料

建立備份目錄 本例項將建立目錄放置於/mnt目錄下,可根據具體情況放置於其他目錄: cd /mnt mkdir dbback pwd /mnt/dbback 建立shell指令碼 指令碼名稱可根據自己規範進行自定義: vim bcmysql.sh 進入編輯器

workerman定時器使用 php定時任務

定時執行 ace 級別 ati 默認 worker ech 秒級 inter add int \Workerman\Lib\Timer::add(float $time_interval, callable $callback [,$args = array(), boo

crontab php 定時任務

關於PHP中的定時任務crontab詳解​​​​​​​ 假定定時執行的檔案在/www/task/資料夾中,則 1. 建立定時任務需要執行的檔案task.php    <?php       $time = date('Y-m-d H

Spring+Quartz 從資料庫中獲取定時任務定時時間,動態實現定時任務的增刪改查

本文轉載自部落格:http://blog.csdn.net/wwkms/article/details/48851005 ----------------------------------------------------------------------------------------

分散式多應用實現單一定時任務

目標:應用可以部署在多臺伺服器上,但是定時任務只能由其中一臺機器觸發。 方案: 1. 應用部署前修改程式碼或者修改配置,確定某臺伺服器的某個應用可以啟用定時任務功能,其它禁用此功能。 優點:效能好 缺點:部署麻煩易出錯、應用一旦崩潰任務即停止。   2.使用分散式鎖,確保同一時刻,不會出

【xxl-job】輕鬆實現分散式定時任務demo例項

【專案描述】前段時間專門獨立了一個spring boot服務,用於做和第三方erp系統的對接工作。此服務的第一個需求工作就是可以通過不同的規則,設定不同的定時任務,從而獲取erp系統的商品資料。所以,系統架構採用了xxl-job實現分散式定時任務。 【學習背景】此專案不是我負責的,在上個月同事讓我幫忙處理一

PHP定時任務執行處理、Crontab定時執行程式,Linux設定定時任務(教程案例)

【第一步】:先寫task.sh指令碼檔案。 【第二步】:設定Crontab定時時間,定時執行task.sh指令碼檔案 【案例一】:每月1號、15號的06:10點,定時備份網站原始碼: 【第一步】:先寫youhutong.sh指令碼檔案。 [[email pr

spring定時任務實現動態定時任務(啟停,週期修改)

使用方法:             複製下方程式碼,在業務需要處呼叫(定時任務狀態和執行週期被修改後),一定要在專案啟動時後立刻執行一次庫中全資料呼叫此方法,List<Cron> crons   Cron中一定要有業務類的包加類名(com.rails.trave

quarz實現一個定時任務

1.pom.xml <properties> <quartz-version>2.2.1</quartz-version> </properties> <!-- quartz --> <depen

多種方式實現Android定時任務,哪一款是你的FEEL?

前言 專案中總是會因為各種需求新增各種定時任務,所以就打算小結一下Android中如何實現定時任務,下面的解決方案的案例大部分都已在實際專案中實踐,特此列出供需要的朋友參考,如果有什麼使用不當或者存在什麼問題,歡迎留言指出!直接上乾貨! 解決方