2016-01-22 41 views
0

我需要一個cron表達式,會在每天12時從1月25日2016年開始這就是我想出了用火起:cron表達式天天跑從日期

0 0 12 25/1 * ? * 

但一月後31,下一次發射時間是二月25

是有這樣一個cron表達的表達?如果不是,我可以使用什麼?

回答

1

假設1月25日以後要(即2032,當可能是服務器將已經取代),我將與三個表達式做到這一點後永遠運行此過程:

0 0 12 25-31 1 * 2016 command # Will run the last days of Jan 2016 after the 25th 
0 0 12 * 2-12 * 2016 command # Will run the rest of the months of 2016 
0 0 12 * * * 2017-2032 command # will run for every day of years 2017 and after. 

我希望這有助於。

+0

我使用石英調度程序,它說你的cron表達式是無效的。 – HeisenBerg

+0

謝謝!抱歉。我沒有注意到石英在表達的格式上增加了第二位。我按照你的預期編輯了一些可以在石英中工作的答案 –

0

有多種方式來完成這個任務,一個可運行與cron作業和測試條件,如果真正的運行實際需要的腳本,否則跳過的腳本。

下面是一個例子,

20 0 * * * home/hacks/myscript.sh 

和myscript.sh把你的代碼來測試條件和實際運行命令/腳本

下面是這樣一個腳本的例子,

#!/bin/bash 

if(($(date) <= "31-01-2016") || ($(date) >= "25-02-2017")){ 

    // execute your command/script 
}else { 
    // do Nothing 
}