2010-09-28 75 views
3

我有一个PHP脚本,我不断更新,需要在几台服务器上运行,以收集基于php ini,phpinfo和其他配置文件等配置文件的数据。我需要确保运行的内容始终是该脚本的最新版本,但这会产生恼人的维护问题,因为脚本始终在更新中。运行不断更新的脚本

所以我想将PHP脚本存储在另一个中心位置,并且有一个在感兴趣的服务器上永远不会更改的通用脚本。通用PHP脚本将数据发送到中央脚本并获得反馈,而不必访问服务器以将代码更改为新脚本。如何才能做到这一点?这是一个API吗?什么是最好的办法呢?我正在使用PHP

如果我没有清楚地解释问题,请问我是否存在不明确的问题。

回答

3

您可以部署一个php文件,该文件将检查中央服务器是否存在新版本的脚本,如果是这样的话,请下载,运行并保留该版本以及版本标记。

下一次检查新版本,如果版本相同,只需运行本地脚本。否则,重复第一步。

通过这种方法,你也可以得到一些额外的好处,比如根据不同的机器上运行的进程或获取发送回中央服务器报告的功能设置自定义流程等

2

听起来像你需要配置管理工具,如Puppet或cfengine。

2

你可以挂载一个NFS共享。或者,如果您希望更高性能的iSCSI over GigE将符合该法案。但实际上rsync可能会对你有好处。

2

scheduledtask.sh:

svn update DataGatherer.php 
php DataGatherer.php 
+0

如果您还没有从服务器访问VCS,那么运行脚本以将探针scp到服务器,远程执行它并将输出撤回也是可行的 - 您当然不会希望能够通过HTTP部署PHP代码! – symcbean 2010-09-28 11:39:06

+0

根据OP描述的版本,我强烈推荐一个VCS。也就是说,scp/ssh也是一个很好的解决方案。您可以将脚本的权限设置为700以避免任何安全问题。 – 2010-09-28 15:16:30