2013-03-21 59 views
2

有沒有辦法告訴cron,如果有更高優先級的作業同時它只應執行更高優先級的工作?cron一次性更高優先級的工作異常

例如:

0 12 * * * ~/ring_a_bell.sh # mplayer bell.wav 

將是標準的振鈴。但只有一個時間,例如在我的生日,我不希望它ring_a_bell.sh但play_a_birthday_mellody.sh:

0 12 21 3 * ~/play_a_birthday_mellody.sh # mplayer birthday.wav 
0 12 * * * ~/ring_a_bell.sh # mplayer bell.wav 

我讀,在作業可以做這樣的工作,但問題是,無論是cronat將在同一時間執行作業。這聽起來不錯。有沒有辦法告訴cron檢查哪一個具有更高的優先級並且只執行其中的一個呢?

回答

1

據我所知,cron不是那麼聰明。我可以想到一個簡單的方法來在cron中編寫你的邏輯,但並不是那麼好。

59 11 21 3 * ln -s ~/play_a_birthday_mellody.sh ~/script_which_plays_stuff.sh 
5 12 21 3 * ln -s ~/ring_a_bell.sh ~/script_which_plays_stuff.sh 
0 12 * * * ~/script_which_plays_stuff.sh 

,並作爲一次性設置,創建~/script_which_plays_stuff.sh作爲一個符號鏈接~/ring_a_bell.sh

無論如何,如何使用cron的傳統方式是運行另一個腳本里面,你編寫你的邏輯。