Crontab作为服务工作

时间:2012-07-21 22:18:37

标签: shell service cron crontab

我有一个脚本从Web服务中提取一些数据并填充mysql数据库。这个想法是每分钟运行一次,所以我添加了一个cron作业来执行脚本。

但是,我希望能够偶尔暂停和重新启动作业,而无需修改我的crontab。

实现这一目标的最佳做法是什么?或者我不应该真的使用crontab来安排我偶尔暂停的东西吗?

我正在考虑设置全局变量的实现,并在脚本中进行检查。但我想我会首先考虑更合适的解决方案。越简单越好 - 我对脚本和ruby都不熟悉。

1 个答案:

答案 0 :(得分:1)

如果我是你,我的脚本将会看到一个静态开关,就像你用全局变量所说的那样,但测试文件存在而不是全局变量。这对我来说似乎很干净。

另一个解决方案是让服务不使用crontab,而是每分钟调用一次脚本。此服务与/etc/init.d或(/etc/rc.d中的其他服务一样,具体取决于您的发布),并具有startstoprestart命令作为其他服务。< / p>

这两种解决方案可以混合使用:

  1. 服务仅创建或删除切换文件,并且crontab行始终处于活动状态。
  2. 或者您的服务直接编辑了this之类的crontab,但是 我不喜欢通过脚本编辑crontab,文章中描述的技术不是原子的(如果你在脚本的读取和写入之间更改了crontab,那么你的更改就会丢失)。
  3. 所以在你的地方,我会选择1。