从网页启动 RSync

从网页启动 RSync

我使用 rsync 进行备份。我想要一个脚本,当有人访问某个 URL 时(这将是私人的和仅供内部使用的)它将立即根据需求启动 rsync 作业。

有人可以告诉我该如何做吗?

答案1

Rsync?当然,这可以完成工作。但这就像用锤子敲螺丝一样。

如果您要推送代码,请使用合适的存储库工具。市面上有很多这样的工具,如果代码未编译,那么机器上的 Git 客户端或提交后挂钩就可以正常工作。

请记住,不要简单地解决今天的问题,确保您的解决方案具有足够的可扩展性以解决明天的问题,即使您还没有完全做到这一点。

答案2

Rsync 通常不是促进代码从开发阶段进入生产阶段的最佳工具。

如果您的开发人员正在运送编译后的代码,他们将受益于构建-测试-包-部署的工作流程,并且您可以通过设置存储库和工作流引擎来增强他们执行此操作的能力。

如果他们只是推送脚本,他们可能可以使用源代码版本控制工具(如 GIT)的功能将工作产品投入生产,尽管他们可以从上面描述的工具基础设施中受益。

看看 Hudson[1] 或 Jenkins[2],它们都是专门为“持续(质量|集成|部署)”设计的工作流引擎。像 Red Hat[3] 的 jBPM 这样的更通用的工作流引擎也能很好地完成这项工作。

虽然这些工具增加了一些前期设置,但它们使开发人员能够实施持续质量[4]、持续集成[5]和持续部署[6]原则,所有这些原则都将尽早发现问题,并减少你因为难以发现的缺陷而在深夜接到电话要求回滚代码的可能性。

当您这样做时,请考虑将其完整的工作产品(代码,模块,脚本等)打包成一个包(如果是 perl 则为 CPAN,如果是 NodeJS 则为 NPM,如果生产服务器运行 Red Hat、CentOS 或 Oracle Unbreakable 则为 RPM)并将其放入存储库,以便可以自动交付完整的工作产品、进行版本控制,并在必要时回滚。

虽然你的操作系统可能提供了维护存储库的工具(Red Hat 及其朋友的 create-repo),但你可以通过利用强大的存储库管理软件(如 JFrog Artifactory[7] 或 Sonatype Nexus[8])获得额外的帮助,因为它们提供了强大的管理功能、基于 Web 的存储库管理和其他功能。

[1]:参见http://hudson-ci.org“哈德逊”
[2]:参见http://jenkins-ci.org“詹金斯”
[3]:参见http://jbpm.org“jBPM”
[4]:对每一次提交运行一系列测试,如果发现错误,则取消该提交,这样错误就不太可能潜入生产环境
[5]:在上线之前,测试新更新的代码是否可以与其余环境很好地兼容
[6]:在代码准备好投入生产后,立即将其推广到生产环境,从而实现增量更改
[7]:参见http://jfrog.com/open-source/“Artifactory”
[8]:参见http://www.sonatype.org/nexus“Sonatype Nexus”

相关内容