2016-08-26 77 views
1

我有一個python腳本,我想每10分鐘執行一次。但是,完成該腳本需要30分鐘。 (這是一個查詢大約1400多個服務器的腳本)。如果我讓它每10分鐘執行一次,它會終止已經運行的cron作業,還是隻啓動一個新作業並讓另一個作業繼續運行?多次運行相同的cronjob

如果它停止了另一個工作,有沒有辦法讓它在同一時間運行多個?

如果它有幫助,這是我這是提前預定,以每10分鐘運行

cd /home/forge/****.**********.*** && ./status.py 

由於cron作業命令。

+0

不運行這個腳本的重疊副本(你似乎想要做的)只是讓事情運行得更慢,最終將計算機運行到地面?也許你想重新思考你的腳本如何工作和/或你想如何使用它。 –

+0

@ScottHunter在最大值時它會同時重疊3個。它可能會減慢它的速度,但我們有一個「專用服務器」來完成這項任務(有了專用服務器,我指的是專門用於此任務的服務器),並且在客戶端將訪問它的主服務器上沒有性能影響 – Timo

+1

製作短的腳本,在後臺啓動你的真實腳本,因此cron只會看到短的一個... –

回答

2

如果稍後的作業停止較舊的作業,應該在執行的作業說明中處理。但是,如果您的作業運行30分鐘,10分鐘後會看到兩個status.py作業,20分鐘後會看到三個status.py作業。當第一份工作在第30分鐘結束時,另一份工作將開始,並且你仍然有三份工作,然後在第40分鐘時第二份​​工作終止,另一份工作開始,所以你最後總是會有三份工作在status.py之間。

克朗,作爲大多數Unix工具,不關心你是否做錯了事。該系統只是試圖填滿你告訴它做的事情。

+1

**沒有**在第40分鐘,你將只有三個工作!從長遠來看,在10 * k分鐘的時間裏,你會發動一項工作,一個人死亡(在30分鐘前發射)。積累只出現在開始處。 –