linux crontab 執行任務(7秒執行)

建立的contab 文件中,每一行都表明一項任務,每行的每一個字段表明一項設置.前五個字段是時間,第六個字段是要執行的命令php

minute   hour   day   month   week   commandshell

minute: 表示分鐘,能夠是從0到59之間的任何整數。bash

hour:表示小時,能夠是從0到23之間的任何整數。dom

day:表示日期,能夠是從1到31之間的任何整數。spa

month:表示月份,能夠是從1到12之間的任何整數。code

week:表示星期幾,能夠是從0到7之間的任何整數,這裏的0或7表明星期日。blog

command:要執行的命令,能夠是系統命令,也能夠是本身編寫的腳本文件。crontab

在以上各個字段中,還能夠使用如下特殊字符:it

星號(*):表明全部可能的值,例如month字段若是是星號,則表示在知足其它字段的制約條件後每個月都執行該命令操做。class

逗號(,):能夠用逗號隔開的值指定一個列表範圍,例如,「1,2,5,7,8,9」

中槓(-):能夠用整數之間的中槓表示一個整數範圍,例如「2-6」表示「2,3,4,5,6」

正斜線(/):能夠用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線能夠和星號一塊兒使用,例如*/10,若是用在minute字段,表示每十分鐘執行一次。

 

 

示例

1. 每分鐘執行一次

* * * * * command

 

2. 每小時的第5分鐘和20分鐘執行

5,20 * * * * command

 

3. 天天的上午8點到11點的第5分鐘和20分鐘執行

5,20,8-11,* * * command

 

4. 每隔3天的上午8點到11點的第5分鐘和第20分鐘執行

5,20,8-11,*/3 * * command

 

5. 每週1到週五的早上6到8點間每隔半小時執行

0,30 6-8 * * 1-5 command

 

6. 每個月的4號與每週的週一和週三執行

* * 4 * mon,wed command

 

7. 一月和三月的5號執行

* * 5 jan,mar * command

 

秒級執行

10秒執行

* * * * * command
* * * * * sleep 10; command 
* * * * * sleep 20; command 
* * * * * sleep 30; command 
* * * * * sleep 40; command 
* * * * * sleep 50; command
* * * * * sleep 60; command

 

2秒執行(總不能寫30行sleep吧)

建立shell腳本crontab.sh,crontab定時執行腳本

crontab.sh

#!/bin/bash  
  
step=2 #間隔的秒數,不能大於60  
  
for (( i = 0; i < 60; i=(i+step) )); do  
    $(php '/home/myfile/php/crontab/test.php')  
    sleep $step  
done  
  
exit 0

crontab 文件中寫入

# m h  dom mon dow   command  
* * * * * /home/myfile/php/crontab/crontab.sh

 

 

注意:若是60不能整除間隔的秒數,則須要調整執行的時間。例如須要每7秒執行一次,就須要找到7與60的最小公倍數,7與60的最小公倍數是420(即7分鐘)。

則 crontab.sh step的值爲7,循環結束條件i<420,

#!/bin/bash  
  
step=7 #間隔的秒數,不能大於60  
  
for (( i = 0; i < 420; i=(i+step) )); do  
    $(php '/home/myfile/php/crontab/test.php')  
    sleep $step  
done  
  
exit 0

 這時 crontab -e能夠輸入如下語句來實現

# m h  dom mon dow   command 
*/7 * * * * /home/myfile/php/crontab/crontab.sh
相關文章
相關標籤/搜索