配合宝塔,设置git自动拉取

本文介绍了如何使用bash脚本定时执行git pull,并结合gitweb钩子和宝塔webhook实现网站实时更新。还详细讲解了在宝塔中配置webhook,包括秘钥使用和代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配合自动任务如下:

         #!/bin/bash 
        #crontab -e
        #* * * * * /web/www/bbc/crontab.sh  > /dev/null
        step=5 #间隔的秒数,不能大于60  
  
        for (( i = 0; i < 60; i=(i+step) )); do  
            cd /data2/official-sites
            git pull 
            sleep $step  
            done  
        exit 0

使用gitweb钩子

        使用推送事件,设置一个web钩子

使用宝塔webhook

        1.查看秘钥

        2.复制请求地址

        3.把秘钥放入请求地址钩子参数中

        4.把如下代码放入webhook中

#!/bin/bash

echo ""

#输出当前时间

date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"

echo "Start"

#判断宝塔WebHook参数是否存在

#if [ ! -n "$1" ];

#then

#          echo "param参数错误"

#          echo "End"

#          exit

#fi

#git项目路径

gitPath="/www/wwwroot/dev/shante/"

#git 网址

#gitHttp="$1"

#if [ $1 -eq "999" ]

#then

         

          

#          echo "End"

#          exit

#fi

echo "Web站点路径:$gitPath"

echo "Git:$gitHttp"

#判断项目路径是否存在

if [ -d "$gitPath" ]; then

        cd $gitPath

        #判断是否存在git目录

        #拉取最新的项目文件

        git pull &2>1

        #设置目录权限

        #chown -R www:www $gitPath

        echo "End"

        exit

else

        echo "该项目路径不存在"

        echo "End"

        exit

fi

 

### 宝塔面板Git项目的教程 在宝塔面板Git项目可以通过多种方式实现,包括手动操作、使用脚本或计划任务自动。以下是具体方法的详细说明。 #### 手动Git项目 1. **登录宝塔面板**:通过浏览器访问服务器的宝塔面板地址,并使用管理员账户登录。 2. **创建网站目录**:在宝塔面板中添加一个新站点,确保站点根目录已正确设置。 3. **进入终端**:通过SSH工具(如Xshell)连接到服务器,或者直接使用宝塔面板内置的终端功能。 4. **执行Git命令**:进入目标站点目录后,运行以下命令完成项目的克隆或更新: ```bash git clone <远程仓库地址> # 克隆远程仓库 git pull origin <分支名> # 最新代码 ``` 这里需要将`<远程仓库地址>`替换为实际的Git仓库地址,`<分支名>`替换为目标分支名称[^3]。 #### 使用脚本自动Git项目 如果需要定期Git项目,可以编写Shell脚本来实现自动化操作。以下是一个示例脚本: ```bash #!/bin/bash # 输出当前时间 date --date='0 days ago' "+%Y-%m-%d %H:%M:%S" echo "-------开始-------" # 判断参数是否正确 if [ ! -n "$1" ]; then echo "param参数错误" echo "End" exit fi # 设置Git项目路径和远程仓库地址 gitPath="/www/wwwroot/$1" gitHttp="git@gitee.com:sgrh/$1.git" echo "路径:$gitPath" # 判断项目路径是否存在 if [ -d "$gitPath" ]; then cd $gitPath # 判断是否存在.git目录 if [ ! -d ".git" ]; then echo "在该目录下克隆 git" sudo git clone $gitHttp gittemp sudo mv gittemp/.git . rm -rf gittemp fi # 最新的项目文件 sudo git reset --hard origin/master sudo git pull origin master echo "完成" # 设置目录权限 chown -R www:www $gitPath echo "-------结束--------" exit else echo "该项目路径不存在" echo "End" exit fi ``` 上述脚本会根据传入的参数动态调整目标路径和仓库地址[^2]。 #### 配置计划任务 为了实现定时Git项目,可以在宝塔面板中配置计划任务: 1. 登录宝塔面板后,进入“计划任务”模块。 2. 点击“添加计划任务”,选择“Shell脚本”类型。 3. 将上述脚本内容复制到任务编辑框中,并设置执行频率。 4. 保存并启用任务,系统将按照设定的时间间隔自动执行脚本[^5]。 #### 注意事项 - 在执行Git相关命令时,可能需要输入密码或密钥。建议提前配置SSH密钥以避免每次都需要手动输入。 - 如果项目中有敏感信息,请确保服务器环境安全,避免泄露数据。 - 对于生产环境,建议在代码前进行备份,防止意外覆盖重要文件[^1]。 ### 示例代码块 以下是一个简单的Shell脚本,用于定时Git项目: ```bash #!/bin/bash cd /www/wwwroot/项目目录 git reset --hard git pull find . \( -type f -o -type d \) -exec chown www {} + -exec chmod 755 {} + ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值