做了一个简易的git 代码自动部署脚本

项目是THINKPHP写的 用了 oschina git 进行版本管理。

公网服务器是CentOS。每次用FTP上传很麻烦。

所以想到了在服务器上安装一个GIT进行 pull代码。因为我的远程服务器数据库和本地不一样,所以代码pull后还需要修改 几个config.php数据库配置文件。

所以想再git 代码更新后,要自动执行config.php文件的替换或者修改。

其中看到这里讨论http://www.v2ex.com/t/81173  git hook

然后看了下比较麻烦。也看不懂。

所以就自己写了一个SH脚本 效果非常不错。分享出来。

首先再服务器中建立一个文件夹,把项目代码clone下来。

git clone https://[email protected]/yfsoft/GR_Operate.git

代码仓库地址:

~/codes/ec.abc.com/GR_Operate

项目部署目录

/www/web/abc/public_html

test.sh

#!/bin/sh
a="Please input your git account password"
echo $a
cd ~/codes/ec.abc.com/GR_Operate
git pull
cd /www/web/abc/public_html
rm -rf *
cp -r ~/codes/ec.abc.com/GR_Operate/* /www/web/abc/public_html
rm -rf /www/web/abc/public_html/Application/Common/Conf/config.php
rm -rf /www/web/abc/public_html/Application/User/Conf/config.php
cp /root/codes/ec.abc.com/needcopy/common_config.php /www/web/abc/public_html/Application/Common/Conf/config.php
cp /root/codes/ec.abc.com/needcopy/user_config.php /www/web/abc/public_html/Application/User/Conf/config.php
chown -R www *
chown -R :www *
echo "git pull success and cpoy codes to www folder done "
echo "SUCCESS!!"

原理很简单。先进入git目录 执行 git pull 更新代码

然后进入网站WWW目录删除所有的代码。

然后复制git目录下的代码到www目录下。

删除2个config.php文件,复制修改好的文件到相应目录下。

最后修改所有的文件和文件夹加入 用户权限和用户组权限。

使用方法很简单

./test.sh
时间: 2024-08-03 15:21:55

做了一个简易的git 代码自动部署脚本的相关文章

GitLab 实现代码自动部署(转载自https://segmentfault.com/a/1190000011561808)

在当下使用 GIT 来管理代码已经是一种非常流行的方式了.使用 GIT 可以很方便的给代码创建分支,撤销不需要的提交,与他人合作共同编写代码. GitLab 是基于 GIT 实现的现代化的开发者协作平台,它将 issues, code review, CI 和 CD 整合到独立的网站UI,弥补了 GIT 在可视化操作方面的不足. 本文目的 本文的目的是配置实现在 GitLab 平台上的代码自动部署.想要达到的效果是这样子的,当客户端向 GitLab 服务器的特定分支(如:prod)提交代码时,G

【原创】jenkins+maven自动部署脚本

jenkins+maven自动部署脚本 2019-02-01 09:34:38 前提,所有主机都做了免密登录操作,相信下面的版本大家应该可以看得明白,我是两台服务器,但只放开了一个服务器的配置,原理很简单: 1.配置一些经常变化的变量 2.进入svn下载下来的源代码空间目录,然后编译 3.远程备份文件(很重要) 4.进入编译后的文件夹target,将文件拷贝至远程生产主机 5.远程重启服务,搞定! #!/bin/bash source /etc/profile #基础环境变量 SERVER_23

自动部署脚本-bash

from here !/bin/bash Check if user is root if [ $(id -u) != "0" ]; then Echo_Red "Error: You must be root to run this script" exit 1 fi . common.sh . basic_soft.sh . config_soft.sh paths config current_path=pwd config_path=$current_pat

Jenkins job的自动部署脚本

Jenkins job的自动部署脚本 需求: 1.从Jenkins的workspace中,将编译好的Java代码部署到D:\zzinfo\UserCenterCoordinator中 2.部署过程中,需要停止相关联的其他进程,如5558_CENTER64.exe | 5559_CENTER64_UserList.exe | APNs.exe 代码如下: #!/usr/local/env python3 # -*- coding:utf-8 -*- # author by Michael Ho #

rsyslog客户端自动部署脚本,经测试使用正常

自动写的rsyslog客户端自动配置脚本,经测试正常使用 #!/bin/bash #Install & Config the rsyslog #Release 0.3 #date 2016.10.10 #set -x #此脚本为log自动部署脚本 #版本较早系统自带syslog,较新版本自带rsyslog #手动配置如下, #在/etc/rsyslog中追加以下配置,然后重启/etc/init.d/rsyslog restart #  user.* @172.16.16.20 #  authpr

GIT服务器实现web代码自动部署

个人原创,版权所有,转载请注明出处,并保留原文链接: http://www.embbnux.com/2014/09/05/git_server_let_code_auto_deploy/ 订阅BLOG:Blog of Embbnux   文章浏览量:4,209 views 之前在一台vps服务器上面搭建了git服务器,用来做代码管理,方便团队开发.但是问题也就相应的来了,使用git可以轻松的上传代码,而由于做的是web开发,每次还都得到服务器上把代码手动pull或者复制到网页所在的文件夹下,也就

git的安装使用和代码自动部署

1.安装 http://www.cnblogs.com/Neddy/archive/2011/02/28/1967548.html 先装依赖,在安装 其中的下载地址可以更改成如下: http://download.chinaunix.net/download/0004000/3744.shtml  该网页下方是最新版本 2.建立服务器 http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b00

用JAVAFX做的一个简易复读机~送给亲爱的老婆~

有段时间没有写博客了,原因一个是最近工作很忙,各种出差,一个是去年就答应老婆给她做一个简易的复读机,用来学习英语的,要求是本地的,具备最基本的AB复读和最近几秒的复读.其实去年就默默的研究过一段时间,先后尝试过JMF还有JAVA SOUND,无奈实在是不好用...不好用就算了,java sound感觉都完不成这些功能...结果最近无意中看到JDK1.8集成了JAVAFX,应该是oracle试图改善SWING的恶劣形象吧...别的没有研究,至少在音频播放这块,已经功能很强大了.所以短短续续做了2个

使用docker实现半自动化代码自动部署与回滚

最近开发docker的caas平台,目前已经开发完成,在优化性能与套模板.对于docker最近是很好,很多人把docker做为vm来使用,当然作为测试来说是没问题,但我感觉docker本身在做沙箱.自动化部署与回滚方面更适合,下面介绍一下我这里是如何通过docker实现代码半自动化部署. 目前我这里已经实现能结合svn或者git代码库,对node.php.java代码进行半自动化部署,先给大家截图看效果,感觉满意在继续细看. 总界面如下 点击左上角的"新增开放项目"就可以新建立测试,下