首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将cron作业部署到生产环境中?

如何将cron作业部署到生产环境中?
EN

Stack Overflow用户
提问于 2009-10-22 03:24:03
回答 9查看 12.7K关注 0票数 22

人们如何在生产环境中部署/版本控制cronjob?与任何特定的解决方案相比,我对人们使用的约定/标准更感兴趣,但我碰巧使用git进行修订控制,而cronjob正在运行一个python/django脚本。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-10-22 05:00:25

如果你使用的是Fabric,你可以添加一个编辑你的crontab的函数。

代码语言:javascript
复制
def add_cronjob():
    run('crontab -l > /tmp/crondump')             
    run('echo "@daily /path/to/dostuff.sh 2> /dev/null" >> /tmp/crondump')
    run('crontab /tmp/crondump')

这会将作业附加到您的 crontab 中(免责声明:完全未经测试且不是很幂等)。

  1. 将 crontab 保存到临时文件。
  2. 在 tmpfile 中添加一行。
  3. 写回 crontab。

这可能不是您想要做的事情,但是按照这些思路,您可以考虑将crontab签入git,并在每次部署时在服务器上覆盖它。(如果您的项目有专门的用户。)

票数 22
EN

Stack Overflow用户

发布于 2011-01-24 06:14:02

使用Fabric时,我更喜欢在本地保留crontab的原始版本,这样我就可以确切地了解生产环境中的内容,并且除了添加条目之外,还可以轻松地对条目进行编辑。

我使用的fabric脚本看起来像这样(一些代码经过编辑,例如负责备份):

代码语言:javascript
复制
def deploy_crontab():
    put('crontab', '/tmp/crontab')
    sudo('crontab < /tmp/crontab')
票数 10
EN

Stack Overflow用户

发布于 2013-11-18 22:44:56

您还可以查看以下内容:

http://django-fab-deploy.readthedocs.org/en/0.7.5/_modules/fab_deploy/crontab.html#crontab_update

django-fab-deploy模块有许多方便的脚本,包括crontab_set和crontab_update

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1603034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档