我们使用 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分支