2012-03-13 102 views
7

我想創建每x周和特定工作日運行的cron作業。例如:每週日和週一午夜每2周運行一次。Cron作業每x周和特定日期運行

爲每個「計劃」存儲cron表達式,並且我在SQL Server 2008中使用ncrontab函數來生成給定cron表達式的日期。

有沒有關於它的表達式?甚至連接幾個表達式?

我試着用下面的表達式,但它總是給人同樣的天月

0 0 1/14 * * 

2012-01-01 00:00:00.000 
2012-01-15 00:00:00.000 
2012-01-29 00:00:00.000 
2012-02-01 00:00:00.000 
2012-02-15 00:00:00.000 
2012-02-29 00:00:00.000 

編輯:
我一直在尋找每X天/周的復發和主cron的問題在於它每次都將重現重置到每月的第一天。例如,如果我每三天在第29天開始重複,則下一次出現將是下個月的第一天。

我忽略了一個解決方案的cron: http://www.codeproject.com/Articles/20343/Recurring-Date-Generator-with-Pattern-Coding

回答

1

嘗試0 0 * * 0/2,1/2

01是週日和週一,和/2是 '隔日'

編輯:

經過對cron的更多研究之後,以上是不正確的因爲se /2表示步驟(每隔一個值),所以0/2等於0,2,4,6,而0/2,1/2等於0,1,2,3,4,5,6,7,這解釋了爲什麼您將其解釋爲一週中的每一天。

在你上面的例子1/14意味着開始與本月1日,由14增加,產生1,15,29

話雖這麼說,如果這是一個* nix的crontab中,那麼你可能已經更細化有關安排類似0 0 * * Sun,Mon check_if_should_run.sh && the_script_to_run.sh的計劃。使用Ncrontab,我想不出設置每隔一週的場景的方法。

+1

我試過了,每天都有復發,從星期天開始。 如果我嘗試0 0 * * 0/2,它會讓我每個星期天和每兩天重複一次 – 2012-03-14 08:00:18