我们有2台Ubuntu Web服务器,其中一台是我们的登台服务器(Staging),另一台是我们的Live服务器(Live)。 Staging有我们的Subversion版本库,以及它的最新版本的网站。 因为SVN服务器在Staging上运行,所以我添加了post-commit钩子脚本,以便登台服务器自动拥有最新的代码。 简单。
但是,我希望Live上的某个存储库也保持更新。 这是一个图像,PDF和类似的存储库。 当一个团队成员对此做出承诺时,我希望它能够在实时服务器上自动更新,以便在邮件,内容pipe理页面等中使用。
我会添加一些东西到SSH后交付和更新,但为了安全,我们只能从一台服务器到另一台用户'commandLine',而'www-data'用户运行后提交。
我宁愿不要在Live上运行cron来每5分钟更新一次,但是我不能在不改变所有用户权限的情况下看到另一种方式。
有任何想法吗?
从我的angular度来看,你已经提到了直截了当的解决scheme
commandLine用户处理活动服务器上的svn存储库 www-datalogin到现场 如果这些都不适合你,我只能想象用用户命令行的SSH到活动服务器,并创build一些'信号',例如创build一个文件f 。 另一方面,使用带有无限循环的shell脚本作为信号的接收器(例如,监视f是否存在)。 shell脚本将在www-data的权限下运行,并在每次收到“signal”时执行svn更新。
免责声明:我不是一个真正的Unix专家,所以我不知道发送“信号”的最干净的方式是什么。 但我很确定这有一个共同的解决scheme。