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

你可能感兴趣的:(shell,服务器脚本,shell脚本)