服务器定时自动拉取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仓库,服务便会自动拉取最新的代码并打包,达到实时更新代码的效果。

目录
相关文章
|
1月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
58 2
|
2月前
|
Shell 开发工具 git
git学习三:git使用:删除仓库,删除仓库内文件
通过GitHub的设置页面删除仓库,以及如何使用Git命令行删除仓库中的文件或文件夹。
186 1
git学习三:git使用:删除仓库,删除仓库内文件
|
2月前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
111 1
|
2月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
986 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
2月前
|
开发工具 git 索引
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
git上面中新建gitignore文件,并且去除已经在仓库版本管理中的文件夹
100 4
|
2月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
476 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
2月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
42 5
|
2月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
387 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
2月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
390 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
2月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
61 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例