当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何将cron作业部署到生产中?》经验,为你挑选了2个好方法。

人们如何将cronjobs部署/版本控制生产?我对人们使用的约定/标准比任何特定的解决方案更好奇,但我碰巧使用git进行版本控制,而cronjob正在运行python/django脚本.



1> kioopi..:

如果您使用Fabric for deploment,您可以添加一个编辑crontab的函数.

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附加一份工作(免责声明:完全没有经过测试,而且不是非常有效的).

    将crontab保存到临时文件.

    在tmpfile中附加一行.

    写回crontab.

这可能并不完全是你想要做的,但沿着这些方面,你可以考虑将crontab检查为git并在每次部署时在服务器上覆盖它.(如果您的项目有专门的用户.)


我必须在创建/ tmp/crondump时添加语法来列出crontab,否则它只是挂起(至少在Ubuntu上).(即'crontab -l>/tmp/crondump')

2> Jesse Shieh..:

使用Fabric,我更喜欢在本地保留我的crontab的原始版本,这样我就可以确切知道生产中的内容,并且除了添加它们之外还可以轻松编辑条目.

我使用的结构脚本看起来像这样(一些代码编辑,例如处理备份):

def deploy_crontab():
    put('crontab', '/tmp/crontab')
    sudo('crontab < /tmp/crontab')

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有