生产上的部署脚本功能

#!/bin/bash
#author by jackluo

#要过滤的文件
ExcludeFile=(api.md dev.md .git .gitignore .htaccess .project README.md)
#定义要copy的目录
new_git_code_dir=/data/projects/你自己的git仓库路径
production_code_dir=/data/projects/你生产上面的路径/
#检查这个字段是否存在这个数组中
function in_array()
{
    local f=($1)
    local a=($2)
    for i in ${a[*]};do
        #检查是否在在过滤文件中,在就返回 1,不在就返回 0
        if [[ $i = $f ]];then
            return 1;
        fi
    done
}

cd $new_git_code_dir

echo "拉取代码..."
start=$(date +%s)
git pull
end=$(date +%s)
time=$(( $end - $start ))
echo "代码拉取完成...完成用了 $time 秒"

#列出目录中所有的文件
LISTDIR=`ls $new_git_code_dir`

echo "开始复制代码..."
start=$(date +%s)

for d in $LISTDIR;do
    #检查是不在拷的范围内
    in_array "$d" "${ExcludeFile[*]}"
    if [[  $? = 1 ]] ; then
        continue
    else
       echo "正在拷 $d..."
       /bin/cp -a ${new_git_code_dir}/$d ${production_code_dir}
    fi
done

end=$(date +%s)
time=$(( $end - $start ))
echo "复制代码完成... 完成用了 $time 秒"
echo "更改目录权限..."
chown fpm:fpm ${production_code_dir} -R &> /dev/null
echo "部署完成"
时间: 2024-10-22 04:01:55

生产上的部署脚本功能的相关文章

Node.js线上服务器部署与发布

第1章 课程预热对整个部署思路进行全流程介绍,通过 5 个不同类型项目,来演示从本地的仓库到最终线上稳定运行的整个项目部署发布流程,来帮助始终编程在一线的前端或者后端工程师,甚至是有 Coding 能力的产品经理,从操作流程和架构形态上,掌握从零开始的项目上线环节,掌握这关键一步,跨过去前端到后端,本地到线上,开发到生产...1-1 为什么是全栈最后一公里1-2 搭建线上生产环境需要做什么 第2章 待部署的 5 个本地 Nodejs 项目分别介绍五个技术架构和产品形态的项目背景,一个 Nodej

利用Powershell在IIS上自动化部署网站

本文主要讲如何通过Powershell在IIS上自动化部署ASP.NET网站,而不涉及Powershell的基本语法,如果没有Powershell基础的同学也可以把本文作为学习Powershell的基石,通过学习本文中的脚本再去查阅具体的语法,可能会达到事半功倍的效果. 一般我们建立网站大致需要以下几个步骤: 1.安装.NET Framework 2.安装了IIS 3.注册.启用ISAPI和CGI限制 4.建立网站 5.设置默认首页.身份验证.设置MIME类型 6.绑定域名或IP地址 7.设置权

docker容器里面各测试环境部署部署脚本(nginx,php,redis,mysql,nodejs)

公司用到的语言,当然还是php为主,不过后台现在都用到nodejs和golang,所以nodesjs和golang都要安装,发觉使用docker还是很好的,只要把环境部署好了,然后打构建成镜像,下次直接就可以生成环境了,不用重新部署.以下为相关服务的部署脚本: nginx: ###上传并解压安装文件:tar zxvf nginx-1.8.0.tar.gz ###进到安装目录:cd nginx-1.8.0 ###编译参数安装: ./configure --user=nginx --group=ng

teamtalk服务端之完美一键部署脚本(ubuntu)

将下面给出的脚本放到你的ubuntu 14.04上(其他版本我没测过),运行之,然后所有的从安装依赖库到数据库再到源码编译再到运行,全部替你一键搞定,甚至连config文件都不需要你配置. 我个人已经在一台全新的阿里云ubuntu服务器上测试通过,并且用ios的客户端进行了测试,登录,发消息,发表情功能都是正常可用. 唯一需要你人工干预的可能就是一开始添加ubuntu的ppa库时需要按个回车键确认以及安装mysql时需要你输入root密码,此处请输入12345,最后还会有一个提示 Please

Cordys BOP平台上角色定义和功能

本主题介绍在流程平台上各种角色和功能. 角色确定了用户在租户里所能执行的权限和活动,以及在任务中的规范授权.在租户中创建角色或在应用程序内来实现,然后把角色分配给用户.只要用户通过角色提供一定的权限,他们就能部署应用.用户能访问应用中内容的程度,取决于他们所分配的角色. 例如,用户可以有客户服务代表.主管.经理的角色.往往经理或主管可能只有审批任务的权限,审批通过或退回. 角色可以嵌套,这意味着一个角色可以从另一个角色获取来增加由超级角色所提供的权限.角色可以分类如下: 功能角色(Functio

Netty简单应用与线上服务器部署_netty视频

Netty简单应用与线上服务器部署 课程学习地址:http://www.xuetuwuyou.com/course/198 课程出自学途无忧网:http://www.xuetuwuyou.com 一.开发环境 4.1.11.Final   jdk1.8 maven 3.2 Spring 4.3.9 二.适合人群 ①想深入学习java ClassLoader ②想在线上linux服务器上运行netty或Springboot服务 三.课程目标 ①掌控ClassLoader ②学会编写shell脚本

[转]你会做Web上的用户登录功能吗?

转自:http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能.以下内容,转载时请保持原文一致,并请注明作者和出处. 用户名和口令 首先,我们先来说说用户名和口令的事.这并不是本站第一次谈论这

Window Server 2008 R2 上安装部署 Exchange 2010

最近先来无事,捣鼓捣鼓 Exchange Server 2010 服务的安装和调试. 一,事先规划: 两台服务器,一台域DC ,一台做 Exchange Server: Exchange 2010 此处将所有功能安装在一台机器上. DC                             Exchange Window Server 2008 R2           Window Server 2008 R2 IP  :10.0.0.100                 IP   :10

rsync实现负载均衡集群文件同步,搭建线上测试部署环境

闲来无事,搭建一个负载均衡集群,至于负载均衡集群搭建过程,找时间写下.这次主要写集群之间的文件同步,以及线上测试环境的搭建. 笔者看过很多公司都没有线上测试环境,真是崩溃了,不造怎么确保线上线下环境一致的. 笔者此次使用三台服务器: 192.168.138.3   web服务器 192.168.138.4   web服务器 192.168.138.10  web服务器+线上测试环境+源站 其中3 4 服务器作为集群中的web服务器,对外开放,是负载均衡集群的部分. 其中10 服务器不对外开放,代