2

我们使用 Git 进行源代码控制,使用 Beanstalkapp.com 作为我们的远程存储库。使用 Beanstalk,我们可以通过 sftp 部署到我们的 Rackspace 云站点帐户(它们不支持 SSH)。虽然这很好用,但我们需要确保我们的网站不会在我们不知情(黑客)的情况下直接在服务器上更新。我知道我们可以对所有目录/文件进行哈希处理以查看是否有变化,但我正在寻找一种更可靠的方法来识别发生了什么变化。我想出了以下方法,我觉得有更多经验的人可以改进它......

以下将在本地机器上的 shell 脚本中,并通过 cron 每小时运行一次:

  • 创建新的 Git 分支“备份”
  • 使用“git checkout backup”切换到分支
  • 使用 SFTP 下载所有文件
  • 将文件添加到分支“git add --all”
  • 将文件提交到备份分支“git commit -m 'backup process'”
  • 差异分支“git diff master..backup”
  • 如果发现差异,通过电子邮件发送结果。
  • 切换回master分支
4

1 回答 1

0

这是一个有趣的想法,你可以在不创建分支的情况下做到这一点。在您的本地机器上:

  • 检查应该部署的任何分支
  • 将当前部署的文件从服务器下载到本地机器上的临时目录
  • 运行diff命令将签出的文件与下载的服务器文件进行比较

当然生成哈希更简单,但是如果有人可以访问我们的服务器文件,那么他们可以更改生成哈希的程序。

于 2012-11-05T18:43:48.520 回答