美文网首页
shell脚本实现git仓库代码自动拉取 --- 2019-08

shell脚本实现git仓库代码自动拉取 --- 2019-08

作者: 一位先生_ | 来源:发表于2019-08-16 14:42 被阅读0次

    shell脚本代码如下:(我命名为fabu.sh)

    我这边配置了四个项目的-可根据自己情况配几个
    代码开始

    !/bin/bash

    tp5的目录

    git_catalog[0]="/home/wwwroot/tp5"
    fabu_catalog[0]="/home/wwwroot/versionlist"
    dns_A[0]='域名'
    dns_line[0]='/home/www'

    yaf的目录

    git_catalog[1]="/home/wwwroot/yaf"
    fabu_catalog[1]="/home/versionlist"
    dns_A[1]='域名'
    dns_line[1]='/home/yaf'

    admin的目录

    git_catalog[2]="/home/wwwroot/admin"
    fabu_catalog[2]="/home/admin_list"
    dns_A[2]='域名'
    dns_line[2]='/home/admin'

    admin_top的目录

    git_catalog[3]="/home/wwwroot/admin_top"
    fabu_catalog[3]="/home/admin_top_list"
    dns_A[3]='域名'
    dns_line[3]='/home/admin_top'

    function get_code(){
    cd {git_catalog[1]}
    git pull origin master
    mkdir -p {fabu_catalog[1]}/2 chown -R www:www{fabu_catalog[1]}/2
    chmod -R 770 {fabu_catalog[1]}/2 cp -r{git_catalog[1]}/.{fabu_catalog[1]}/2

    if [ $1 == 0 ]||[ $1 == 1 ]||[ $1 == 2 ];
    then
        chmod -R 777 ${fabu_catalog[$1]}/$2/runtime/
        chown -R www:www ${fabu_catalog[$1]}/$2/runtime/
        chmod -R 777 ${fabu_catalog[$1]}/$2/public/
        chown -R www:www ${fabu_catalog[$1]}/$2/public/
    else
        echo '获取代码成功'
    fi
    

    }

    function fabu(){
    ln -snf "{fabu_catalog[1]}/2"{dns_line[$1]}
    echo '发布成功'
    }

    read -p '请输入发布项目 0:tp5 1:line 2:admin 3:admin_top 发布输入2:' project
    echo -e "\n project" if [project == 0 ]
    then
    echo ''
    elif [ project == 1 ] then echo '' elif [project == 2 ]
    then
    echo ''
    elif [ project == 3 ] then echo '' else echo '待开发' exit 0 fi read -p '请输入事件 1:获取代码 2:发布 :' types echo -e "\ntypes"
    if [ types == 1 ] then cd{fabu_catalog[project]} ls -l read -p '请输入发布版本号:' version echo -e "\nversion "
    get_code projectversion
    elif [ types == 2 ] then cd{fabu_catalog[project]} ls -l read -p '请输入发布版本号:' version echo -e "\nversion "
    fabu projectversion
    else
    echo '待开发'
    exit 0
    fi

    代码结束

    1.如果出现git pull 无法拉取但是你可以再服务器上使用git命令拉取的话 那这是权限的问题 首先你要看下你php-fpm和nginx的所属用户是谁 使用你命令:
    ...

    1. php-fpm

    cat /etc/usr/local/php/php-fpm.conf

    1. nginx

    cat /etc/usr/local/nginx/conf/nginx.conf
    ...

    2.再看你发布文件的权限和你项目的权限及其所属的用户存在问题不 只要解决了这些问题 就没有问题。

    相关文章

      网友评论

          本文标题:shell脚本实现git仓库代码自动拉取 --- 2019-08

          本文链接:https://www.haomeiwen.com/subject/qtofsctx.html