使用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时需要密码,脚本每次执行都要输入密码,有点麻烦,后经改进,实现了自
动化交互,即脚本自动输入密码,用的工具是expect。expect这个工具Linux上默认没有安装,需要自己安装,由于我用的是CentOS,所以直接用yum安装它:
附上服务器的自动化git pull的脚本,eims.sh :
这脚本中expect执行了一个自动输入密码的脚本, autopwd.sh:
git pull的时候直接执行 eims.sh即可,中间不用人工干预。
开发环境: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时需要密码,脚本每次执行都要输入密码,有点麻烦,后经改进,实现了自
动化交互,即脚本自动输入密码,用的工具是expect。expect这个工具Linux上默认没有安装,需要自己安装,由于我用的是CentOS,所以直接用yum安装它:
相关文章推荐
- maven: 开发、测试和生产环境使用不同的配置文件例子
- Rsync使用非ssh默认端口从远程服务器同步文件到本地
- 使用Maven自动打包配置文件生成开发环境,测试环境,生产环境
- Maven 使用profile以文件形式指定开发、生产等不同的环境
- nodeJs 脚本 WatchPost.js 本地开发过程中直接与服务器进行文件同步
- 微信小程序,腾讯云node环境后台koa2开发框架(本地调试、接口、静态文件服务、文件长传服务)
- 用svn和Rsync和php做本地开发环境、测试服务器、远程服务器同步和更新
- 本地windows机器和远程Linux服务器之间文件传输 -- Xshell 使用sftp 上传下载文件
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 使用Git下载Hadoop的到本地Eclipse开发环境
- EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间
- 本地文件同步在远程服务器上使用
- 新版vue-cli模板下本地开发环境使用node服务器跨域的方法
- 使用阿里云ECS服务器转发外网请求到内网(微信公众号开发本地调试环境)
- 使用linux自建证书(ios强制https 微信小程序强制https 本地开发环境)
- Linux中使用rsync实现多服务器之间文件同步问题
- pycharm实现本地使用服务器环境开发
- 使用SVN auto commit命令将本地文件同步到服务器
- [置顶] 本地git仓库推送到服务器自建的git仓库实现目录文件同步教程[自整理]
- 关于怎么让多个程序搭建在一个服务器上,搭建一个适合与架构师使用的开发与实现环境