2012-01-02 65 views

回答

4

該腳本可以每天運行和包裹檢查的天數模45等於常數:

10 13 * * * test $((`date +\%s`/24/60/60\%45)) = 41 && your_script 

我認爲41表達式將評估今天真。 %'%'是crontab中的特殊字符,它需要被轉義。

2

從crontab的site

*  *  * * *  command to be executed 
-  -  - - - 
|  |  | | | 
|  |  | | +----- day of week (0 - 6) (Sunday=0) 
|  |  | +------- month (1 - 12) 
|  |  +--------- day of  month (1 - 31) 
|  +----------- hour (0 - 23) 
+------------- min (0 - 59) 

是不是真的有什麼在這裏,將做到「每45天」

我會運行腳本,每天一次,並讓您的腳本檢查,如果它已經45自上次發送郵件以來的幾天。

<?php 
    if($days_since_last_email >= 45) { 
     //your existing send mail script here 
    } 
?> 
+0

我認爲Songo的答案就是你想要的。 – SMTF 2012-01-02 09:23:43

+1

不是那個三高答案錯了 – Viren 2014-01-31 08:39:36

0

可以使用

0 0 */45 * * php path/to/your/php/script 

這將在00:00(午夜)每45天運行任務。 來源: Cron jobs

+1

這不是一個正確的方法。 – 2012-01-02 09:26:33

+0

@SachinSawant它有什麼問題 – AlanFoster 2012-01-02 09:37:04

+7

可分割的數字45不在1-31的範圍內。 – 2012-01-02 09:41:38

-1

有說法'每45天'的方式,而是你必須指定什麼特定的日子你想運行的工作。可能你可能想在45天內完成這項工作。

第三個字段是月份。如果您在此字段中指定*,則它每45天運行一次。

0 0 */45 * * /home/ramesh/backup.sh

試試這個

+1

這是錯誤的,它導致它在每個月的每一天運行它不像你認爲它不落在0-31 – Viren 2014-01-30 15:21:55

2

同樣可以通過調度2個cron作業的腳本

從01-起施行。 Jan-17:

0 0 1 1,4,7,10 * abc.sh 

0 0 15 2,5,8,11 * abc.sh 
+1

應該指出,這不會是*精確*每45天,只是粗略每45天,由於每月的天數不同。不過,如果只有大約每45天就足夠了,這是一個不錯的選擇。 +1 – 8bittree 2017-05-05 18:05:21