2011-05-23 105 views
1

請問這個crontab的語法意味着crontab的語法查詢

"*/15 * * * 2-5" 

我認爲這意味着它運行,每15分鐘過去每隔一小時,從週二至週六。 我可以更改到:

"*/55 * * * 2-5" 

,這似乎不是出於某種原因。

你能解釋一下開頭是什麼嗎?

感謝

+0

2-5是星期二到星期五 – BugFinder 2011-05-23 09:03:34

+0

啊真的,對不起這是0的基礎,我解決了我的問題。 – Charbel 2011-05-23 09:40:01

回答

6

,如果你想讓它每15分鐘運行你的第一個例子應該沒​​問題。第五位的2-5指週二至週五。

你想用*/55完成什麼?

一個好的語法解釋可以在Wikipedia:

星號(*)中找到

星號表示了cron 表達式將匹配的所有值的字段的 ;例如在第4場(月)中使用星號 將 指示每個月。

斜槓(/)

斜線被用來描述範圍的 增量。例如 3-59/15在第一場(分鐘) 將顯示 小時的第三分鐘,此後每隔15分鐘。 表格「*/...」相當於 表格「0-59/...」。

2

*/xx表示每xx個時間單位。

在您的例子,*/15意味着每15分鐘=>:15:30:45

*/55將每隔55分鐘,將每一個小時(10:55,11啓動後在55腳本: 55,12:55 ....)

+0

我相信*/55會啓動,就像你提到的每55分鐘一樣,意思是10:55,11:50,12:45等等。 – 2014-07-24 17:04:11

2
"*/15 * * * 2-5" 

*/15並不意味着它每15分鐘運行過去每隔一小時......在/15是一個循序漸進的指標,這意味着它每15分鐘運行(即4次一小時)

從手冊頁:

> man 5 crontab 

Steps are also permitted after an asterisk, 
so if you want to say ``every two hours'', 
just use ``*/2''. 

,如果你想要週期運行的東西,即因此只使用*/符號。一小時多次,一天多次等。

彼得

0

違背了民間傳說,*/XX並不意味着每XX時間單位。

/pattern表示大約每xx個時間單位,但是不在範圍的末尾

它只適用於xx可以被單位均勻分割(即分鐘或秒僅爲/ 2,3/4,/ 5,/ 6,/ 8和/ 12)

例如*/5將在大多數時間內每5天重複一次,除了在月份結束時重複1,2或4天后(取決於月份和閏年)。

因爲55非常接近60,它實際上可以按照你的意圖工作,但只是巧合(因爲四捨五入)。如果你寫*/25它會運行兩個小時,在:25和:50

0

Jaime Guerroro的答案接近RHEL 7.2上的正確行爲這是我的發現。 用於cron條目

*/55 * * * * /root/test.sh &>> /root/output.log 

我得到的行爲

=== Start /root/test.sh Wed May 18 19:55:01 === 
=== Start /root/test.sh Wed May 18 20:00:01 === 
=== End /root/test.sh Wed May 18 20:02:35 === 
=== End /root/test.sh Wed May 18 20:03:44 === 

從維基解釋,https://en.wikipedia.org/wiki/Cron

例如,輸入*/5日字段 1後,有時執行,2天或3天,取決於月份和閏年;這是因爲 cron是無狀態的(它不記得上次執行的時間 也不計算它與現在的差異,這是精確的 頻率計數所需的 - 相反,cron僅僅是模式匹配器)。