2

優先度の高いジョブが同時に存在する場合、優先度の高いジョブのみを実行する必要があることを 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

at-job はこの種のジョブを実行できると読みましたが、問題は と の両方がcron同時にatジョブを実行することです。そして、それはいい音ではありません。どちらが優先度が高いかを確認し、そのうちの1つだけを実行するようにcronに指示する方法はありますか?

4

1 に答える 1

2

私の知る限り、cronはそのように賢くはありません。ロジックをcronでコーディングする簡単な方法を1つ考えることができますが、それはそれほど良いことではありません。

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

1回限りのセットアップ~/script_which_plays_stuff.shとして、へのシンボリックリンクとして作成します~/ring_a_bell.sh

とにかく、cronを使用する従来の方法は、ロジックをコーディングする別のスクリプトを実行することです。

于 2013-03-21T18:49:28.210 に答える