2015-02-24 35 views
0

我面臨的問題是我在代碼中使用的腳本,我的cronjob每5分鐘運行一次分鐘,但它運行一段時間的腳本需要更多的時間,我希望我的cronjob等待這些文件完成其處理,然後在最早的時間間隔執行是否有可能?如何同步Cronjob與其運行需要超過5分鐘才能完成的文件,但我每3分鐘設置一次Cronjob

請看下面的例子。請給我一個解決方案。 TIA。

我運行一個cronjob爲如:

*/5 * * * * /home/Sti/New_Int/fetch_My_Data.sh 

此作業調用下面關於每個腳本做

  1. 腳本和一些細節fetch_Some_Data.sh - >這個腳本是剛剛將少量文件從一個位置移動到另一個位置,以便只處理所需的文件。
  2. tran.sh - >該腳本打開一個for循環,對於每個文件,它將通過調用PostP.sh腳本打開一個數據庫連接,並對其進行處理,其睡眠時間爲60秒。
  3. PostP.sh - >這是它創建了一個數據庫連接,結束它這是在點正在處理每一個文件的腳本2.

所以,你可以提供我一個解決方案,這樣,如果該文件沒有在第2點處理的cronjob將不會運行到那時

回答

0

我通常在這種情況下使用臨時文件來指示正在運行的實例,直到該文件存在所有其他實例只是退出或錯誤。
別人做任何事情之前這個邏輯添加到您的shell腳本:
是否存在文件
然後
出口
末 如果
其他
觸摸空文件
末 其他

+0

不服氣:( – iamnewbie 2015-02-24 09:58:13

+0

其他選項不是cron,而是在父代碼中創建後臺進程,然後退出。在調用和退出之前,您可以添加等待5分鐘。 – 2015-02-24 13:58:02

相關問題