人们如何在生产环境中部署/版本控制cronjob?与任何特定的解决方案相比,我对人们使用的约定/标准更感兴趣,但我碰巧使用git进行修订控制,而cronjob正在运行一个python/django脚本。
发布于 2009-10-22 05:00:25
如果你使用的是Fabric,你可以添加一个编辑你的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签入git,并在每次部署时在服务器上覆盖它。(如果您的项目有专门的用户。)
发布于 2011-01-24 06:14:02
使用Fabric时,我更喜欢在本地保留crontab的原始版本,这样我就可以确切地了解生产环境中的内容,并且除了添加条目之外,还可以轻松地对条目进行编辑。
我使用的fabric脚本看起来像这样(一些代码经过编辑,例如负责备份):
def deploy_crontab():
put('crontab', '/tmp/crontab')
sudo('crontab < /tmp/crontab')发布于 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
https://stackoverflow.com/questions/1603034
复制相似问题