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

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/fxyl_admin/"
fabu_catalog[2]="/home/fxyl_admin_list"
dns_A[2]='admin.sharemedical.vip'
dns_line[2]='/home/admin'
//admin 目录在服务器上不需要创建 ,只需要创建fxyl_admin(项目源目录)和fxyl_admin_list(项目版本目录)就可以了

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 1]}
git pull origin master
mkdir -p 1]}/{fabu_catalog[2
chmod -R 770 1]}/{git_catalog[{fabu_catalog[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 "1]}/{dns_line[$1]}
echo '发布成功'
}

read -p '请输入发布项目 0:tp5 1:line 2:admin 3:admin_top 发布输入2:' project
echo -e "\n project == 0 ]
then
echo ''
elif [ project == 2 ]
then
echo ''
elif [ types"
if [ {fabu_catalog[version "
get_code version
elif [ {fabu_catalog[version "
fabu version
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-16)