有没有办法告诉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会同时执行这项工作。这听起来可不妙。有没有办法让cron检查哪一个具有更高的优先级,并且只执行其中的一个?
发布于 2013-03-22 02:49:28
据我所知,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的传统方法是运行另一个脚本,您可以在其中编写您的逻辑。
https://stackoverflow.com/questions/15551532
复制相似问题