【发布时间】:2010-11-11 07:01:05
【问题描述】:
我在服务器上有这个通过 cron 每小时运行的 bash 脚本。我非常高兴,但现在用户希望能够通过 Web 界面配置频率。
我不习惯以编程方式操作 cron 配置,但我不确定其他选项是否更好。
在我看来,我可以:
- 安排一个脚本每分钟运行一次,并检查它是否真的应该“现在”运行
- 完全放弃 cron 并使用作为其自己的调度程序的守护程序。这可能意味着用python重写脚本
- ...或者吸收它并从 Web 界面操作 cron 配置(用 python BTW 编写)
我该怎么办?
编辑:澄清一下,我担心操作 cron 的主要原因是因为它基本上是没有验证的文本操作,如果我搞砸了,我的其他 cron 作业都不会运行。
这是我最终做的:
听从 stefanw 的建议,我在 bash 脚本的顶部添加了以下行:
if [ ! `cat /home/username/settings/run.freq` = $1 ]; then
exit 0
fi
我设置了以下 cron 作业:
0 */2 * * * /home/username/scripts/publish.sh 2_hours
@hourly /home/username/scripts/publish.sh 1_hour
*/30 * * * * /home/username/scripts/publish.sh 30_minutes
*/10 * * * * /home/username/scripts/publish.sh 10_minutes
在网页界面,我让用户在这四个选项之间进行选择,然后根据用户的选择,我将字符串2_hours/1_hour/30_minutes/10_minutes 写入文件/home/username/settings/run.freq。
我不喜欢它,但它似乎是最好的选择。
【问题讨论】: