我们的场景是一个本地Linux服务器,我们可以在它上做我们想做的任何事情,包括安装东西和设置cron作业,以及一个只能通过MySQL访问的远程服务器。远程一个是通常的LAMP托管服务,所以我们可以上传任何我们想要的PHP,但是只有来自本地主机的php脚本本身才能连接到MySQL,我们不能从外部直接连接到数据库。有FTP上传和管理PHP文件。
本地服务器运行一些业务软件,我们编写脚本从该软件获取一些数据。我们需要将这些数据加载到MySQL托管的网站上的一些专用表中。
出于测试目的,我们导出本地db (使用本地phpMyAdmin)并在远程系统上导入它(使用远程phpMyAdmin),当然,它可以正常工作。现在我们需要把它自动化。
我们的“同步”实际上是远程端的完全擦除,然后从本地db重新导入所有内容。每晚都会发生这种事。
第一个想法是本地cron作业,它通过mysqldump导出,通过FTP上传,wget是一个远程php文件URL (经过一些凭据检查),最终运行上传的SQL。有点盲目愚蠢的剧本。只要我把陌生人排除在SQL upload / SQL导入区域之外,就应该工作得很好。
而不是重新发明车轮,是不是有什么东西可以达到同样的结果,也许以一些更聪明的方式,我没有想到?
谢谢。
发布于 2012-03-15 16:39:00
除了可能跳过ftp部分之外,我想不出更好的方法了。相反,只使用wget直接使用POST (尽管我会检查如果POST失败了会发生什么,即对于PHP上传大小来说,数据太大了)。这将跳过脚本中的一些复杂性,因为您只是在执行mysqldump,然后是wget,然后是POST (除非我遗漏了什么)。
然而,更重要的问题是,为什么要使用只允许PHP访问的主机?您已经有一个开发系统在本地工作,因此您知道如何处理事务的管理端。您确实应该尽可能接近生产和开发环境,以避免因对不同系统进行故障排除而产生的烦人的小麻烦(更不用说避免这种特殊的管理麻烦了)。
我的VDS提供商为1GB 48做了一年的托管包,提供1GB的空间、100 1GB的流量和一个数据库(这是inc. 增值税,所以如果你可以收回这个价格,那就少花点钱吧)。你就有了完整的外壳访问权限。我相信有很多这样的主机提供商,所以为什么要阻碍未来的发展呢?它只会把你踢得更远。
https://serverfault.com/questions/370076
复制相似问题