如何对项目的 cron 作业进行版本控制? [关闭]

2024-04-07

我有一堆项目,我用 git 和 fab 推送到服务器。它们是 Django 站点的负载。其中一些站点有 cron 作业。

我希望处于这样的境地:

  • 通过在本地编辑文件并运行 fab 命令(例如fab save deploy正如我目前所做的那样)

  • (仅)远程安装新作业并替换任何旧作业(我不想每次都克隆作业)

  • 保持相同的高度可定制的时间设置。并非我所有的问题都可以通过@hourly 解决。

解决这个问题的最佳方法是什么?


我知道如何将 cron 作业部署到生产环境中? https://stackoverflow.com/questions/1603034/how-do-you-deploy-cron-jobs-to-production但重点似乎是将 cronning 侵入到结构脚本中,并且(至少在答案中)没有考虑到可能有多个项目需要每个用户的 cron 作业。

我正在寻找存储在 VCS 中的东西(我不会将我的 fabfile 推送到 git - 它在我的所有项目之间共享),这些东西将与 crontab 中的其他作业一起工作。如果每次部署时 ProjectA 和 ProjectB 都覆盖彼此的作业,那就不好了。


我不喜欢编辑 crontab 或每用户 cron 作业;任何人编辑crontab可能会搞乱你的部署。相反,我创建了进入的脚本/etc/cron.$interval这允许我部署它们Puppet https://puppet.com/docs/open-source-puppet(参见计划任务类型 https://puppet.com/docs/puppet/latest/cheatsheet_core_types.html#cron)或一个简单的cp命令。

因此,如果我需要一个每天运行一次的脚本,我要么将其放入$project/cron/cron.daily/$project如果我在没有 Puppet 的情况下安装。

或者,如果您确实需要合并 crontab,则应该向每个脚本添加页眉和页脚,这样就可以轻松查看 crontab 的某些部分来自何处。页眉/页脚还允许您自动添加/删除每个脚本。

你永远不应该替换整个 crontab,因为有一天,有人会手动编辑它。编辑将一直有效,直到您再次部署,此时它将突然静默失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对项目的 cron 作业进行版本控制? [关闭] 的相关文章

  • 如何使用 Github Pages 分支正确提交到存储库中

    我有一个问题 情况基于gh pages https pages github com 我的项目使用预处理器和其他困难的人员 因此 我的项目结构如下所示 主分支 src node modules public js css etc index
  • Ansible git clone“权限被拒绝”但直接 git clone 工作

    我在使用 Ansible 时遇到了一个令人不安的问题 我使用当前主机的 ssh 密钥在我的环境中设置 git 克隆 name Add user Public Key copy src Users alexgrs ssh id rsa pub
  • 清理 Subversion 存储库的最佳方法是什么?

    我有一个不断增长的存储库 其中包含十几个我使用 TortoiseSVN 维护的项目 因为我对此完全陌生 还不知道其来龙去脉 我保存存储库的空间有限 因此我想备份它 然后删除一些旧版本 例如 如果一个项目的版本为 50 我只想保留 50 49
  • 如何在保留历史记录的同时将 git 存储库重新设置为父文件夹?

    我有一个 git 仓库 foo bar baz具有大量的提交历史和多个分支 我现在想要 foo qux位于同一个仓库中 foo bar baz 这意味着我需要它们都位于植根于的存储库中 foo 但是 我想保留我所做的更改的历史记录 foo
  • 如何使用 BFG 删除受保护的提交

    使用 BFG 清理存储库时 https rtyley github io bfg repo cleaner https rtyley github io bfg repo cleaner 遇到以下情况 Protected commits T
  • 从 Jenkinsfile 中获取有关其他分支的信息

    Jenkins Blue Ocean 与链接的 Bitbucket Server 实例在同一本地网络上运行 Jenkins 中的多分支项目能够为本地 Bitbucket 服务器上链接的 Bitbucket 存储库的每个分支创建一个分支 但在
  • 错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库 拖放以及使用终端上的 Git 添加 提交 推送 在这两种情况下
  • Git:检查文件是否存在于某个版本

    在我的应用程序中 我使用 git 对一些外部文件进行版本管理 我正在使用类似的命令git show HEAD 1 some file获取文件的某个版本 基于 git 标签 提交哈希或与 HEAD 的关系 当文件不存在时 会输出 致命 消息
  • 我可以将 Azure Dev Ops 构建定义同时用于发布管理管道和拉取请求,但后者不会触发管道吗

    简而言之 我们希望使用构建定义来生成用于发布管理的工件并检查拉取请求 但不允许后者触发新版本 我们在 Git Repo 上有 CI 构建定义 将工件输入到发布管理管道中 与许多团队一样 我们也设置了 Pull 请求来保护我们的 git ma
  • 如何在 git 中删除 subversion 远程?

    我有一个最初使用 git svn 创建的 git 存储库 现在我有一个推送到的 git 服务器 但 svn 存储库已丢失 我可以删除 svn 远程吗 如何 您可以编辑 git config文件并删除与要删除的遥控器关联的部分 您要删除的行可
  • Git 显示更改后的相同文件

    当我似乎无法弄清楚更改时 Git 向我显示整个文件已更改 这是 cygwin git 但它也发生在 msysgit 中 git version git version 2 1 1 diff lt git show HEAD File cs
  • emacs 临时文件的 .gitignore 正则表达式

    我正在尝试 gitignore emacs 临时 自动保存文件 我在用着 在我的 gitignore 中 But git add A在子文件夹中运行仍然给我 new file make collections py new file nor
  • Hudson 结帐卡在“git fetch”处

    我正在使用 git 版本 1 6 2 2 1669 g7eaf8 在 Hudson 1 314 上使用 Hudson Git 插件 0 7 3 当我触发构建时 Hudson 执行 git fetch 但它永远不会返回 我把一只卡在那里14天
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • 由于合并而不允许 git revert 但未给出 -m 选项

    我正在尝试使用 revert 命令恢复到 git 中的某个 哈希 号 我正在使用以下命令 git revert c14609d74eec3ccebafc73fa875ec58445471765 但是 我得到以下返回 错误 提交 c14609
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • Git 中的专有+开源设置? (例如铬/铬)

    您将如何设置一个拥有专有版本和开源版本 例如 Chrome 和 Chromium 的代码存储库 对于 Git 您会使用两个分支还是两个存储库 您如何使 私有 版本与开源版本保持同步 如果是我 我会有两个存储库 这样 您就可以对每个版本拥有不
  • 有没有办法列出Git中未修改的文件?

    我从另一个来源以 tarball 的形式获取了一些更改 我想知道哪些文件没有更改 目标是 Git 克隆 因此可以轻松查看新增内容和更改内容 有人知道如何获取未更改内容的列表 不包括未跟踪的内容 吗 编辑 换句话说 我希望利用 Git 来查找
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位

随机推荐