linux使用crontab實現PHP執行定時任務

2021-07-03 04:40:51 字數 2549 閱讀 999

首先說說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 檔案改變後就不必重新啟動守護程序了。

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

(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');

?>

(2)然後crontab -e編寫如下shell:

* 

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

說明:test.php必須為可執行檔案:chmod +x test.php

測試結果很正常,截圖如下:

當然你可以用使用crontab -e繼續新增任務,在/var/spool/cron下你可以看到乙個root檔案。

linux實操篇 crontab 任務排程

crond排程任務 概述 任務排程 是指系統在某個時間執行的特定的命令或程式 任務排程分類 1 系統工作,有些重要的工作必須周而復始的進行。如病毒掃瞄等 2 個別使用者可能希望執行某些程式,如mysql備份 基本語法 crontab 選項 常用選項 e 編輯crontab定時任務 l 查詢cront...

linux下的crontab使用

名稱 crontab 使用許可權 所有使用者 使用方式 crontab u user file crontab u user 說明 crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。u user 是指設定指定 user 的時程表,這個前提是你必須要有...

linux中crontab的使用

1 at 一次性定時任務,僅執行一次就結束排程的命令 2 crontab 週期性定時任務 1 crontab的工作 許可權 可以通過 etc cron.allow和 etc cron.deny進行使用者限制,同時cron.allow比cron.deny的優先順序高,會先查詢cron.allow 存在...