服务器定时自动拉取Git仓库代码自动部署

简介: 服务器定时自动拉取Git仓库代码自动部署

说在前面

我们平时在开发的时候都是在本地环境进行开发,开发测试完成后往往还需要在本地打包后再上传文件到服务器,这样的操作十分繁琐,并且有的时候可能不能及时,因此不能保证实时更新服务器的代码。所以才有了编写这个定时自动更新代码并打包项目脚本的想法。

思路

  • 1、先在服务器创建一个文件夹,来放置Git仓库的代码,配置好git环境
  • 2、 编写自动更新脚本
  • 3、设置定时任务

脚本代码

#! /bin/bash -ilex
## author:jyeontu
echo "--------------------------------"
echo "----------开始执行脚本----------"
date
pwd;
echo "切换到git目录"
##切换到放置git代码的目录绝对路径
cd /www/wwwroot/ip/myGiteeCode/myProject;
path=`pwd`
echo $path
if [ "$path" == "/www/wwwroot/ip/myGiteeCode/myProject" ]
then
        echo "目录切换成功,准备拉取最新代码"
else
        echo "目录切换失败,退出程序"
        exit 0;
fi
git pull;
echo "准备构建项目"
npm run build;
##切换到需要更新的项目目录
cd /www/wwwroot/ip/myProject
pwd
path=`pwd`
if [ "$path" == "/www/wwwroot/ip/myProject" ]
then
        echo "目录切换成功,删除旧文件"
        rm -rf *
        ls;
else
        echo "目录切换失败,退出程序"
        exit 0;
fi
echo "移动新文件"
##将最新代码打包的文件复制到项目目录
cp -r /www/wwwroot/ip/myGiteeCode/myProject/dist/{index.html,js,css,favicon.ico,fonts,img} ./;
echo "更新成功"
ls;
date
echo "----------结束执行脚本----------"

设置定时任务

使用宝塔面板的同学可以直接在面板中设置。

使用终端的可以继续往下看

#切换到spool目录,定时任务配置文件在该目录下
vi /var/spool/cron/root
#在该文件中添加
#每5分钟自动执行一次
*/5 * * * * 脚本地址.sh
  • 第一个表示每xx(1-59)分钟,每分钟用或*/1表示
  • 第二个*表示每xx(0-23)小时
  • 第三个*表示日期,1-31
  • 第四个*表示月份,1-12
  • 第五个*表示星期x(0-6, 0为星期日)

说在后面

设置完成后,以后你更新代码只需要将本地代码推送到git仓库,服务便会自动拉取最新的代码并打包,达到实时更新代码的效果。

目录
相关文章
|
6天前
|
机器学习/深度学习 人工智能 开发者
DeepSeek服务器繁忙?拒绝稍后再试!基于阿里云PAI实现0代码一键部署DeepSeek-V3和DeepSeek-R1大模型
阿里云PAI平台支持零代码一键部署DeepSeek-V3和DeepSeek-R1大模型,用户可轻松实现从训练到部署再到推理的全流程。通过PAI Model Gallery,开发者只需简单几步即可完成模型部署,享受高效便捷的AI开发体验。具体步骤包括开通PAI服务、进入控制台选择模型、一键部署并获取调用信息。整个过程无需编写代码,极大简化了模型应用的门槛。
121 7
|
1月前
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
84 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
4月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
228 1
|
4月前
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
571 4
|
4月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
1836 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
4月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
733 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
4月前
|
Java Linux 开发工具
IDEA中git提交前如何关闭code analysis以及开启格式化代码
【10月更文挑战第12天】本文介绍了在 IntelliJ IDEA 中关闭代码分析和开启代码格式化的步骤。关闭代码分析可通过取消默认启用检查或针对特定规则进行调整实现,同时可通过设置 VCS 静默模式在提交时跳过检查。开启代码格式化则需在 `Settings` 中配置 `Code Style` 规则,并通过创建 Git 钩子实现提交前自动格式化。
1267 3
|
4月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
631 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
4月前
|
JavaScript 前端开发 开发工具
一身反骨的我,用--no-verify绕开了git代码提交限制!
【10月更文挑战第7天】一身反骨的我,用--no-verify绕开了git代码提交限制!
265 0
|
3月前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。