您的位置:首页 > 其它

使用git和expect在本地开发环境与服务器生产环境之间同步程序文件

2014-09-17 16:21 603 查看
本地环境:
开发环境:Windows
测试环境:CentOS in Virtualbox
虚拟机和宿主机之间有网络桥连接,可以互相访问网络。服务器生产环境: Amazon Linux AMI (从CentOS修改而来)。本地环境和生产环境颇有不同,数据库用的虽然都是MySQL,但是用户名密码什么的不一样。缓存,本地用的
是Redis,服务器上用的是Memcache。我想要的效果是:本地的程序传到服务器上后,不用修改任何一处,程序
都能正常运行。于是我做了多个配置文件,程序运行时自动判断运行环境并加载不同的配置,从而生成不同的
缓存实例等。程序文件在本地开发环境与服务器生产环境之间同步是个问题,FTP肯定不能用,太弱了,SVN我又不太喜欢,最终
选了Git。本地的文件修改后,git add . ,git commit,再 git push上去,服务器上写一个shell脚本,该
脚本的工作:1.清空原有程序及git配置2.重新初始化git,并 git remote add 。3.将master从仓库中直接pull下来。Git仓库服务器我用的是Bitbucket。4.配置文件权限。这样一来就极大的简化了同步流程。安全起见,git仓库设为私有,git pull时需要密码,脚本每次执行都要输入密码,有点麻烦,后经改进,实现了自
动化交互,即脚本自动输入密码,用的工具是expectexpect这个工具Linux上默认没有安装,需要自己安装,由于我用的是CentOS,所以直接用yum安装它:
附上服务器的自动化git pull的脚本,eims.sh :
这脚本中expect执行了一个自动输入密码的脚本, autopwd.sh:
git pull的时候直接执行 eims.sh即可,中间不用人工干预。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐