2011-03-04 76 views
57

我有一個每天運行一次的cron作業。但我想讓它在午夜或其他時間運行。如何將cron作業設置爲在準確時間運行?

+1

你能澄清一下嗎?您是否要求提供有關如何在特定時間運行cron工作的信息(例如,下午5:43);一個單獨的,不重複的時間(明天早上3點27分,然後再也不會);或者是其他東西? – BryanH 2011-03-07 20:50:20

回答

31

退房

http://www.thesitewizard.com/general/set-cron-job.shtml

設置你的crontab指令的細節。

45 10 * * * 

將在每天的第10小時,第45分鐘運行。

午夜...也許

0 0 * * * 
+2

如果我不想重複......只想在@ 10:45執行一次該作業? – user2176576 2014-09-16 05:23:22

+0

@ user2176576使用'at'命令而不是'crontab'。 – 2017-10-02 09:16:22

+0

@ user2176576例如:'在10:45 ',然後'<您的命令>' – 2017-10-02 09:28:17

111

您也可以爲每個GR指定確切值

0 2,10,12,14,16,18,20 * * *

它代表2h00,10h00,12h00等等,直到20h00。

從上面的回答,我們有:

逗號 「」,意思是 「和」。如果您對上述線路感到困惑,請記住空格是字段分隔符,而不是逗號。

而且從(Wikipedia page):

* * * * * command to be executed 
┬ ┬ ┬ ┬ ┬ 
│ │ │ │ │ 
│ │ │ │ │ 
│ │ │ │ └───── day of week (0 - 7) (0 or 7 are Sunday, or use names) 
│ │ │ └────────── month (1 - 12) 
│ │ └─────────────── day of month (1 - 31) 
│ └──────────────────── hour (0 - 23) 
└───────────────────────── min (0 - 59) 

希望它能幫助:)

-

編輯:

  • 不要錯過了第一個0(零)和下面的空格:它表示「分鐘零」,你也可以將它設置爲15(th (第15分鐘)或表達式(如*/15)(每15分鐘即可分爲0.15秒)
+1

您忘了在第一行添加一個額外*嗎? – YumYumYum 2014-01-22 06:52:00

+0

我幾乎肯定它就是這樣:)不是嗎? :v – 2014-05-23 15:48:01

+0

@YumYumYum 0和下一個數字之間有空格,所以它表示分鐘,下一個表示小時。 – abhishek 2016-09-16 07:26:41

1

我的用例是我在計量帳戶。週一至週五的上班時間爲上午6點至下午6點,數據傳輸受到限制。我正在使用帶寬限制,但不知何故,數據依然存在,每天大約1GB!

我強烈懷疑它是病態或病態,做了大量的搜索。我的下載機器被稱爲「下載」。下面是我的解決方案,使用上面,用於啓動和停止下載VM,使用KVM:

# Stop download Mon-Fri, 6am 
0 6 * * 1,2,3,4,5 root   virsh shutdown download 
# Start download Mon-Fri, 6pm 
0 18 * * 1,2,3,4,5 root   virsh start download 

我認爲這是正確的,希望它可以幫助別人了。

+0

您還可以將您的日子簡化到一個範圍:0 6 * * 1-5。以下是crontab.guru爲這兩個選項所說的內容:Distinct List = http://crontab.guru/#0_6_%2A_%2A_1,2,3,4,5 Range = http://crontab.guru/#0_6_%2A_% 2A_1-5 – HeyZiko 2016-10-11 16:07:46