當前位置:編程學習大全網 - 源碼下載 - 如何使用Linux的Crontab定時執行PHP腳本的方法

如何使用Linux的Crontab定時執行PHP腳本的方法

鍵入 crontab

-e 編輯crontab服務文件

------------------------------------------Ubuntu中的linux---------------

安裝lynx包:apt-get isntall lynx

先寫ln.sh腳本:lynx /folder/script.php

註意感嘆號

把這個腳本保存為cron-lynx.sh

保存到壹個妳找得到的地方,比如:

妳可以把它放在網站根目錄。

然後再創建壹個script.php的文件。當cron運行的時候,將會通過lynx來調用它。這個文件可以通過瀏覽器來訪問。

然後編輯主機的crontab,像下面這樣。

*/1 * * * * root /bin/sh

/usr/www/yourdirectory/sh_scripts/cron-lynx.sh

在/bin/sh 和 /usr 間有空格。就這樣就設好了,還有壹點要註意的是,妳的sh文件和php文件都正確無誤。

===================================================================================

linux下的crontab服務:

1、crontab 是用來讓使用者在固定時間或固定間隔執行程序之用

在linux平臺上如果需要實現任務調度功能可以編寫cron腳本來實現。

以某壹頻率執行任務

linux缺省會啟動crond進程,crond進程不需要用戶啟動、關閉。

crond進程負責讀取調度任務並執行,用戶只需要將相應的調度腳本寫入cron的調度配置文件中。

cron的調度文件有以下幾個:

1.

crontab

2.

cron.d

3.

cron.daily

4.

cron.hourly

5.

cron.monthly

6.

cron.weekly

如果用的任務不是以hourly monthly weekly方式執行,則可以將相應的crontab寫入到crontab

或cron.d目錄中。

示例:

每隔壹分鐘執行壹次腳本 /opt/bin/test-cron.sh

可以在cron.d新建腳本 echo-date.sh

內容為

*/1 * * * * root /opt/bin/test-cron.sh

2、cron是壹個linux下的定時執行工具,可以在無需人工幹預的情況下運行作業。由於Cron

是Linux的內置服務,如果它不自動起來,可以用以下的方法啟動、關閉這個服務:

/sbin/service crond start //啟動服務

/sbin/service crond stop //關閉服務

/sbin/service crond restart //重啟服務

/sbin/service crond reload //重新載入配置

妳也可以將這個服務在系統啟動的時候自動啟動:

在/etc/rc.d/rc.local這個腳本的末尾加上:

/sbin/service crond start

現在Cron這個服務已經在進程裏面了,我們就可以用這個服務了

查看服務是否已經運行用 ps -ax | grep cron

3、crontab命令

查看該用戶下的crontab服務是否創建成功, 用 crontab -l

命令

命令 which php 查看linux下安裝的php的路徑

cron服務提供crontab命令來設定cron服務的,以下是這個命令的壹些參數與說明:

crontab -u

//設定某個用戶的cron服務,壹般root用戶在執行這個命令的時候需要此參數

crontab -l //列出某個用戶cron服務的詳細內容

crontab -r //刪除沒個用戶的cron服務

crontab -e //編輯某個用戶的cron服務

比如說root查看自己的cron設置:crontab -u root -l

再例如,root想刪除fred的cron設置:crontab -u fred -r

在編輯cron服務時,編輯的內容有壹些格式和約定,輸入:crontab -u root -e

進入vi編輯模式,編輯的內容壹定要符合下面的格式:*/1 * * * * ls

>> /tmp/ls.txt

任務調度的crond常駐命令crond

是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此

任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

crontab命令選項:

-u指定壹個用戶

-l列出某個用戶的任務計劃

-r刪除某個用戶的任務

-e編輯某個用戶的任務

4、cron文件語法:

小時

星期

命令

0-59

0-23

1-31

1-12

0-6

command

(取值範圍,0表示周日壹般壹行對應壹個任務)

記住幾個特殊符號的含義:

“*”代表取值範圍內的數字,

“/”代表”每”,

“-”代表從某個數字到某個數字,

“,”分開幾個離散的數字

5、任務調度設置文件的寫法

可用crontab

-e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件

具體格式如下:

Minute Hour Day Month Dayofweek

command

分鐘

小時

天每星期

命令

每個字段代表的含義如下:

Minute

每個小時的第幾分鐘執行該任務

Hour

每天的第幾個小時執行該任務

Day

每月的第幾天執行該任務

Month

每年的第幾個月執行該任務

DayOfWeek

每周的第幾天執行該任務

Command

指定要執行的程序

在這些字段裏,除了“Command”是每次都必須指定的字段以外,其它字段皆為可選

字段,可視需要決定。對於不指定的字段,要用“*”來填補其位置。

舉例如下:

5

*

*

*

*

ls

指定每小時的第5分鐘執行壹次ls命令

30

5

*

*

*

ls

指定每天的 5:30 執行ls命令

30

7

8

*

*

ls

指定每月8號的7:30分執行ls命令

30

5

8

6

*

ls

指定每年的6月8日5:30執行ls命令

30

6

*

*

0

ls

指定每星期日的6:30執行ls命令[註:0表示星期天,1表示星期1,

以此類推,也可以用英文來表示,sun表示星期天,mon表示星期壹等。]

30

3

10,20

*

*

ls

每月10號及20號的3:30執行ls命令[註:“,”用來連接多個不連續的時段]

25

8-11

*

*

*

ls

每天8-11點的第25分鐘執行ls命令[註:“-”用來連接連續的時段]

*/15

*

*

*

*

ls

每15分鐘執行壹次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]

30

6

*/10

*

*

ls

每個月中,每隔10天6:30執行壹次ls命令[即每月的1、11、21、31日是的6:30執行壹次ls 命令。 ]

每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件

50

7

*

*

*

root

run-parts

/etc/cron.daily [

註:run-parts參數表示,執行後面目錄中的所有可執行文件。 ]

6、 新增調度任務

新增調度任務可用兩種方法:

1)、在命令行輸入: crontab -e 然後添加相應的任務,wq存盤退出。

2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。

7、 查看調度任務

crontab -l //列出當前的所有調度任務

crontab -l -u jp

//列出用戶jp的所有調度任務

8、 刪除任務調度工作

crontab -r //刪除所有任務調度工作

9、 任務調度執行結果的轉向

例1:每天5:30執行ls命令,並把結果輸出到/jp/test文件中

30 5 * * * ls >/jp/test

2>&1

註:2>&1 表示執行結果及錯誤信息。

編輯/etc/crontab 文件配置cron

cron服務每分鐘不僅要讀壹次/var/spool/cron內的所有文件,還需要讀壹次

/etc/crontab,因此我們配置這個文件也能運用cron服務做壹些事情。

用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root //如果出現錯誤,或者有數據輸出,數據作為郵件發給這個帳號

HOME=/ //使用者運行的路徑,這裏是根目錄

# run-parts

01

*

*

*

*

root run-parts

/etc/cron.hourly

//每小時執行/etc/cron.hourly內的腳本

  02

4

*

*

*

root run-parts

/etc/cron.daily

//每天執行/etc/cron.daily內的腳本

22

4

*

*

0

root run-parts

/etc/cron.weekly

//每星期執行 /etc/cron.weekly內的腳本

42

4

1

*

*

root run-parts

/etc/cron.monthly

//每月去執行/etc/cron.monthly內的腳本

  大家註意”run-parts”這個參數了,如果去掉這個參數的話,後面就可以寫要運行的某個腳本名,而不是文件夾名了

例如:

1) 在命令行輸入: crontab -e 然後添加相應的任務,wq存盤退出。

2)直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務

11 2 21 10 * rm -rf /mnt/fb

  • 上一篇:西安都有哪些知名IT外企?
  • 下一篇:問道手遊交易金額超限
  • copyright 2024編程學習大全網