目录

一.DevOps简介

1.什么是持续集成(CI-Continuous integration)

2.什么是持续部署(CD-continuous deployment)

3.什么是持续交付(Continuous Delivery)

二.GitLLab安装与应用【yum安装】

1.安装前准备

2.先安装依赖包

3.装包(注意版本自定义)

4.gitlab相关的目录

5.修改配置并初始化及验证

6.常用命令及例子

三.GitLab容器安装

1.防火墙、SELinux

2.修改sshd默认端口

3.准备容器环境

4.创建数据目录

5.启动容器

四.GitLab网页操作

1.用浏览器访问GitLab页面,

2.配置GitLab

五.客户端测试

1.查看仓库地址

2.客户端使用密码管理GitLab项目

3.SSH免密上传

1)客户端生成SSH密钥

2)使用用户登录GitLab

3)上传密钥

4)使用密钥管理GitLab项目

5)上传静态页面代码测试

六.yum部署Jenkins

1.设置防火墙和SELinux

2.安装依赖软件

3.部署、初始化Jenkins

4.管理Jenkins插件、系统配置

七docker安装jenkins

1.安装Jenkins

2.起容器准备

3.安装

4.配置Jenkins

5.安装插件

八.Jenkins项目管理

1.浏览器访问

2.构建(build)Jenkins项目

3.查看Jenkins拉取的代码数据

4.修改项目配置

九.构建分发服务器

1.安装、配置FTP共享服务器

2.修改GitLab项目配置

十.自动化上线

1.安装配置httpd;编写上线脚本;完成整个工作流程

2.编写自动化上线脚本


完成整理工作流程:

开发人员编写代码,将代码上传到GitLab服务器,Jenkins从GitLab服务器上面拉取最新代码数据到本地,根据Jenkins项目配置,将代码拉取到本地后,可以进行编译、测试、打包等工作,最后将数据包写入到共享服务器,应用服务器最后从共享服务器拉取数据实现上线功能。

一.DevOps简介

1.什么是持续集成(CI-Continuous integration)

持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作

2.什么是持续部署(CD-continuous deployment)

是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率

3.什么是持续交付(Continuous Delivery)

持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现。

img

开发自己上传–最原始的方案 开发给运维手动上传–运维自己手动部署 运维使用脚本复制–半自动化 结合web界面一键部署–自动化

二.GitLLab安装与应用【yum安装】

1.安装前准备

# 防火墙与selinux设置
~]# firewall-cmd --set-default-zone=trusted
~]# setenforce 0
~]# sed -i '/SELINUX/s/enforcing/permissive' /etc/selinux/config
​
## 修改sshd端口
# 因为git是通过SSH协议的形式访问的,需要占22端口,而sshd服务也需要占22端口,所以需修改sshd服务端口
~]# vim /etc/ssh/sshd_config 
Port 36000
~]# service sshd restart
# 注还需要准备443,80端口

2.先安装依赖包

~]# yum install -y  vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion 
~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix

3.装包(注意版本自定义)

~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
~]# yum -y install gitlab-ce*
安装包官方下载地址:

https://packages.gitlab.com/gitlab/gitlab-ce
yum源清华大学下载地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
​
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/

4.gitlab相关的目录

/etc/gitlab #配置文件目录
/run/gitlab #运行pid目录
/opt/gitlab #安装目录
/var/opt/gitlab #数据目录
/var/log/gitlab #日志目录

5.修改配置并初始化及验证

~]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.100'  #修 改此行
# 增加下面行,可选邮件通知设置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "29308620@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "29308620@qq.com"

初始化服务 执行配置并启动服务:

#修改完配置文件要执行此操作
gitlab-ctl  reconfigure

img

验证gitlab启动完成

gitlab-ctl status
 run: gitaly: (pid 24753) 245s; run: log: (pid 24378) 310s
 run: gitlab-monitor: (pid 24824) 244s; run: log: (pid 24595) 283s
 run: gitlab-workhorse: (pid 24776) 245s; run: log: (pid 24448) 304s
 run: logrotate: (pid 24531) 296s; run: log: (pid 24530) 296s
 run: nginx: (pid 24472) 302s; run: log: (pid 24471) 302s
 run: node-exporter: (pid 24574) 290s; run: log: (pid 24573) 290s
 run: postgres-exporter: (pid 24847) 243s; run: log: (pid 24662) 275s
 run: postgresql: (pid 24204) 365s; run: log: (pid 24203) 365s
 run: prometheus: (pid 24832) 244s; run: log: (pid 24625) 281s
 run: redis: (pid 24144) 371s; run: log: (pid 24143) 371s
 run: redis-exporter: (pid 24610) 282s; run: log: (pid 24609) 282s
 run: sidekiq: (pid 24362) 312s; run: log: (pid 24361) 312s
 run: unicorn: (pid 24722) 250s; run: log: (pid 24322) 314s

6.常用命令及例子

gitlab-rails #用于启动控制台进行特殊操作,如修改管理员密码、打开数据库控制台( gitlab-rails dbconsole)等
gitlab-psql #数据库命令行
gitlab-rake #数据备份恢复等数据操作

gitlab-ctl  #客户端命令行操作行
gitlab-ctl stop #停止gitlab
gitlab-ctl start #启动gitlab
gitlab-ctl restar #重启gitlab
gitlab-ctl  status #查看组件运行状态
gitlab-ctl  tail nginx #查看某个组件的日志

img

首次登录web页面,必须先设置密码,密码要求最少8位

三.GitLab容器安装

1.防火墙、SELinux

~]# firewall-cmd --set-default-zone=trusted
~]# setenforce 0
~]# sed -i '/SELINUX/s/enforcing/permissive/'  /etc/ssh/sshd_config

2.修改sshd默认端口

因为Git是通过SSH协议形式访问,后面需要启动GitLab容器,该容器需要占用22端口,而电脑的sshd服务也需要占用22端口(端口冲突),所以需要提前修改sshd默认端口,将端口修改为2022

~]# vim /etc/ssh/sshd_config
Port 2022                                
~]# systemctl restart sshd

~]# ssh -p 2022  192.168.4.20 (-p 可以放后面) #远程测试

注意:修改后需要重新登录一次虚拟机(重新登录需要指定端口)。

3.准备容器环境

# 准备yum源安装docker
~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~]# yum clean all && yum repolist && yum makecache
## 安装依赖
~]# yum install -y  vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion 
~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix
# 安装docker
~]# yum install -y docker-ce
~]# systemctl enable docker.service --now
此操作联网:

~]# docker search gitlab-ce #查找
~]# docker pull gitlab/gitlab-ce # 下载镜像

4.创建数据目录

容器无法持久保存数据,需要将真机目录和容器目录绑定,实现数据永久保存

~]# mkdir -p /srv/gitlab/{config,logs,data}
~]# ls /etc/resolv.conf # 必须要有该文件,默认linux有

5.启动容器

~]# docker run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart=always -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab twang2218/gitlab-ce-zh

# run 起容器
# -d 放入后台
# -h是在容器内的主机名
# --name 起一个容器名
# -p 映射端口
# --restart=always #(表示此容器自动开启【关不了gitlab】)
# -v 映射文件

# 密码查看(可忽略)
~]# docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

四.GitLab网页操作

1.用浏览器访问GitLab页面,

http://172.17.64.9

初始化登录密码(用户root/密码如上,或自己修改)

img

首次登录web页面,必须先设置密码,密码要求最少8位

img

2.配置GitLab

1)创建用户

 

 

 

添加密码

 

测试登录

2)创建组

img

img

将用户加入到组

3)创建项目(类似于创建一个仓库)

img

五.客户端测试

1.查看仓库地址

 

 

2.客户端使用密码管理GitLab项目

~]# yum -y install git
# 配置hosts
~]# vim /etc/hosts
172.17.0.51 gitlab

## 使用刚刚创建的用户
~]# git config --global user.name "kali" 
~]# git config --global user.email "20236305@qq.com"
# 或者使用管理员
~]# git config --global user.name "Administrator"
~]# git config --global user.email "admin@example.com"
~]# git clone http://gitlab/devops/myproject.git

# 示例
~]# cd myproject
~]# touch README.md
~]# git add README.md
~]# git commit -m "add README"
~]# git push -u origin master
Username for 'http://192.168.4.20': keke    #这里输入用户名  
Password for 'http://jerry@192.168.4.20':  123456789  #这里输入密码

 

3.SSH免密上传

1)客户端生成SSH密钥

在客户端操作

~]# rm -rf /root/.ssh/known_hosts  #删除之前的ssh远程记录
~]# ssh-keygen                   #生成ssh密钥文件
~]# cat ~/.ssh/id_rsa.pub       # 查看密钥文件
ssh-rsa 
AAAAB3NzaC1yc2EAAAADAQABAAABAQDPVwP8E7TtKha9H8Ec+CU2n19aIPo9sUa/pdM7gRaf0yG+BcdyQ7Hgi6pI51IhX6tat46L5tLkAY7urVeEmnPtUk/TVIUc0smJPXYKIggOCr2dDd9s1S0

2)使用用户登录GitLab

页面用户第一次登录页面需要重置一次密码,密码可以与旧密码相同

img

3)上传密钥

4)使用密钥管理GitLab项目

前面已经用http的方式访问过服务器的代码仓库了,这里把之前的http服务器信息删除,使用ssh协议访问(在客户端操作)

 

~]# cd /root/myproject
~]# git remote -v
origin	http://gitlab/devops/myproject.git (fetch)
origin	http://gitlab/devops/myproject.git (push)

# 删除
~]# git remote remove origin

# 添加
~]# git remote add  origin git@gitlab:devops/myproject.git

# 查看测试
~]# git remote -v
origin	git@gitlab:devops/myproject.git (fetch)
origin	git@gitlab:devops/myproject.git (push)

5)上传静态页面代码测试

~]# echo "hello world" >  README.md 
~]# git add .
~]# git commit -m "update"
~]# git push -u origin master

## 导入一个项目测试(可以到github)
~]# dnf  -y  install   unzip tar
~]# unzip  www_template.zip
~]# cp -r www_template/*   myproject/
~]# cd  myproject/
~]# git add .
~]# git commit -m  "web site"
~]# git push -u origin master
~]# git tag  v1   # 打个标签
~]# git push -u origin v1

查看定义的标签

 

六.yum部署Jenkins

1.设置防火墙和SELinux

~]# firewall-cmd --set-default-zone=trusted
~]# setenforce 0
~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

2.安装依赖软件

网页下载Index of /jenkins/redhat-stable/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

~]# rz -be [包]
~]# dnf -y install git postfix mailx java-11-openjdk
~]# systemctl enable postfix --now

备注:Git(版本控制软件)、postfix(邮件服务器软件(发))、mailx(邮件客户端软件(收))、openjdk(Java JDK工具)

3.部署、初始化Jenkins

http://172.17.64.16:8080/login?

~]# dnf -y install ./jenkins-2.164.3-1.1.noarch.rpm
~]# systemctl enable jenkins
~]# systemctl start jenkins

第一次访问会提示初始密码的位置(密码在/var/lib/Jenkins/secrets/initialAdminPassword文件中)

~]# cat /var/lib/jenkins/secrets/initialAdminPassword
9424973edc06471aa268bb35c68f95cd

img这里选择跳过不安装插件

img

可以选择不创建用户

img

img

img

4.管理Jenkins插件、系统配置

1)重置管理员密码。

img

使用新密码重新登录

img

2)插件管理。 查看插件列表

img

img

3)拷贝插件文件到Jenkins目录,Jenkins插件目录为插件目录:/var/lib/jenkins/plugins/。

Jenkins插件文件在目录:jenkins_plugins.tar.gz。

插件包含:中文插件、Git插件等。

官网Jenkins Plugins

可以到官网上下载插件包在拷贝到/var/lib/jenkins/plugins/

Apache HttpComponents Client 4.x API Plugin
Command Agent Launcher Plugin
Credentials Plugin
Display URL API
Git client plugin
Git Parameter (Plug-In)
Git plugin
Trilead API Plugin
Structs Plugin
SSH Credentials Plugin
Script Security Plugin
SCM API Plugin
Mailer Plugin
Localization: Chinese (Simplified)
Localization Support Plugin
JSch dependency plugin
JUnit Plugin(Junit SQL Storage Plugin)
jQuery plugin
JAXB plugin
Oracle Java SE Development Kit Installer Plugin
Pipeline: Step API
Pipeline: SCM Step
Pipeline: API
# 注意下载插件得时候要注意是否有依赖得插件一起安装了(害得我还一直找包)
~]# cp -rp jenkins_plugins/*   /var/lib/jenkins/plugins/
~]# chown jenkins.jenkins /var/lib/jenkins/plugins/
~]# systemctl restart jenkins
# 注意文件权限

有网的情况下也可以直接安装

 

如果在搜索区找不到时,记得查看安装了的,有个时候会当依赖安装掉

重新登录Jenkins网页控制台

img

4)再次查看插件列表

img

img

5)调整系统设置,配置邮箱(测试的话可以不配置)

img

img

七docker安装jenkins

1.安装Jenkins

下载Jenkins,lts代表最新版

# 准备yum源安装docker
~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~]# yum clean all && yum repolist && yum makecache
## 安装依赖
~]# yum install -y  vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion 
~]# yum install -y curl policycoreutils openssh-server openssh-clients postfix
# 安装docker
~]# yum install -y docker-ce
~]# systemctl enable docker.service --now
# 下载镜像
~]# docker pull jenkins/jenkins:lts
# 查看Jenkins镜像
~]# docker images
~]# docker inspect jenkins镜像ID

2.起容器准备

# 创建一个Jenkins目录,用于容器内目录挂载宿主机
~]# mkdir /data/jenkins_home
~]# chown -R 1000:1000 /data/jenkins_home

3.安装

# 安装启动Jenkins容器
~]# docker run -d --name jenkins -p 8080:8080 -v /data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts;
备注:
-d # 启动在后台
--name # 容器名字
-p # 端口映射(8081:宿主机端口,8080:容器内部端口)
-v # 数据卷挂载映射(/data/jenkins_home:宿主机目录,/var/jenkins_home:容器目录)
jenkins/jenkins:lts # 镜像
# 查看Jenkins启动情况
~]# docker ps | grep jenkins

云服务器8080端口要开启 因为本操作是在腾讯云ELB上进行安装的,需要在安全组里开放8080此端口,咱自己用,最好还是指定下IP访问Jenkins http://腾讯IP:8081

4.配置Jenkins

解锁

在这里插入图片描述

在安装完成后,默认生成了一个登录密码,首次登录需要这个密码。 密码容器内路径:var/jenkins_home/secrets/initialAdminPassword 但是我们不是之前在宿主机挂载过目录吗,直接在宿主机就可以查看密码了 查看密码:然后复制粘贴即可

~]# cat /data/jenkins_home/secrets/initialAdminPassword

5.安装插件

在这里插入图片描述推荐直接点左边的推荐插件,看网速吧,慢的话半小时,但是至少是全的,省事

管理用户创建 创建一个管理员账户,相当于admin

配置完成

在这里插入图片描述

八.Jenkins项目管理

1.浏览器访问

Jenkins服务器8080端口。

img

img

默认Jenkins会拉取最新版本的代码,这里的设置可以让Jenkins拉取特定的分支或标签(tag)的代码

img

继续设置Git参数,定义Git仓库的URL路径,以及需要下载克隆的版本或分支

注:指定分支必须与上图git参数一样

img

如果是git init创建的git则需要在添加那输入用户与密钥

 

 

2.构建(build)Jenkins项目

首先需要找到刚刚常见的项目

img

​​​​​​​

 

img

查看是否正确

查看操作

 

3.查看Jenkins拉取的代码数据

默认Jenkins会加拉取的代码数据保存到/var/lib/Jenkins/workspace/目录

# 注意需一层一层看
~]# ls /var/lib/jenkins/
~]# ls /var/lib/jenkins/workspace/
~]# ls /var/lib/jenkins/workspace/myweb/
# 如果此时拉取代码可以发现位置还是这,并且会覆盖
~]# rm -rf /var/lib/jenkins/workspace/myweb/*

## 容器查看
~]# ls /data/jenkins_home/workspace/myweb

4.修改项目配置

如果代码有多个版本或分支,每次都将代码拉取到相同位置,会产生数据覆盖,我们可以修改项目配置,将不同的版本和分支数据保存到不同子目录下。 点击《配置》,重新修改Jenkins项目配置

img

1)为Jenkins项目添加附加动作行为,将代码拉取输出到子目录(Check out to a sub-directory)

img

 

2)设置邮件通知,在构建失败时可以给特定人员发送邮件(测试的话可以不配置)

img

英文配置

 3)再次构建项目,并查看数据。 重新构建项目

# 这里就以容器为示例
# 先删除
~]# rm -rf /data/jenkins_home/workspace/myweb/*

然后拉取

img

# 最后查看
~]# ls myweb-v1

九.构建分发服务器

1.安装、配置FTP共享服务器

1)设置防火墙、SELinux

~]# firewall-cmd --set-default-zone=trusted
~]# setenforce 0
~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
  1. 安装配置vsftpd、启动服务

~]# dnf  -y   install   vsftpd   #安装软件
~]# vim /etc/vsftpd/vsftpd.conf  #修改vsftpd配置文件
anonymous_enable=YES              #允许匿名访问ftp8.2版本激活ftp要到配置文件里面
~]# mkdir -p /var/ftp/deploy/packages
~]# chown -R :jenkins /var/ftp/deploy/
#修改权限将目录所属组修改为jenkins
~]# chmod -R 775 /var/ftp/deploy/
#修改权限让jenkins组对该目录有读写权限
~]# systemctl enable vsftpd --now
#设置服务为开机自启动服务,并立刻启动该服务

2.修改GitLab项目配置

1)修改项目配置,添加构建步骤

img

2)编写构建脚本,脚本内容如下

###########
# 要求是搭建一个ftp然后把代码拷贝到这个ftp文件中
###########
## 如果是服务器的搭建的就可以这么写
pkg_dir=/var/ftp/deploy/packages 
#定义变量pkg_dir,变量值为ftp共享目录。
cp -r myweb-$web $pkg_dir  
#将jenkins拉取到/var/lib/Jenkins/workspace/myweb-$web目录的数据拷贝的ftp共享目录
rm -rf $pkg_dir/myweb-$web/.git  
#上一步拷贝过来的数据目录下包含一个隐藏.git目录,删除该git仓库目录
cd $pkg_dir/  
#cd到ftp共享目录下
tar czf myweb-$web.tar.gz myweb-$web 
#将ftp共享目录下的代码数据打包
rm -rf myweb-$web  
#将ftp共享目录下的代码数据目录删除
md5sum myweb-$web.tar.gz | awk '{print $1}' > myweb-$web.tar.gz.md5  
#校验打包文件的HASH值(哈希值),并将结果写入到一个文件中。
cd .. 
#返回上一级目录
echo -n $web > ver.txt 
#将当前Git版本信息写入ver.txt文件
## 容器的写法
# 1.在本地书写脚本
~]# vim ceshi.sh 
#!/bin/bash
rm -rf myweb-$web/.git
tar czf $web.tar.gz myweb-$web
rm -rf myweb-$web
md5sum $web.tar.gz | awk '{print $1}' > $web.tar.gz.md5
echo -n $web > ver.txt
# 2.上传容器并查看
~]# docker cp ceshi.sh 29:./
~]# docker exec -it 29 cat /ceshi.sh 
# 3.执行如下操作3)
# 4.书写脚本执行项目拉取
~]# vim ceshi2.sh 
#!/bin/bash
pkg_dir=/var/ftp/deploy/packages
web_dir=/data/jenkins_home/workspace/myweb
mv $web_dir/* $pkg_dir/

3)重新构建项目,查看数据

img

使用浏览器访问FTP服务,查看数据

img

十.自动化上线

1.安装配置httpd;编写上线脚本;完成整个工作流程

1)设置防火墙和SELinux

~]# firewall-cmd --set-default-zone=trusted
~]# setenforce 0
~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config

2)安装、配置httpd。

~]# dnf  -y  install   httpd  wget   tar        #安装httpd、tar和wget
~]# systemctl  enable  httpd   --now     #设置开启自启,并立刻启动

2.编写自动化上线脚本

~]# vim web.sh
#!/bin/bash
#定义变量,指定FTP共享路径
ftp_url=ftp://192.168.4.30/deploy
#定义变量,指定网页根路径
web_dir=/var/www/html
#定义函数,行数名为down_file,该函数的作用是从FTP服务器下载代码数据到网站根目录
down_file(){
#获取FTP服务器上面最新构建的代码版本号
#curl是基于命令行的浏览器,-s选项为静默访问,不显示下载过程(可以自己对比不是用-s的差异)
  version=$(curl -s $ftp_url/ver.txt)   # -s静默模式不显示
#将服务器上面的版本文件下载到web服务器的/var/www/html/目录下
#wget为下载工具(如果没有则需要安装),-q选项为静默模式下载,不显示下载过程
#-O选项可以指定将文件下载到哪里,这里是下载到/var/www/html/ver.txt
  wget -q $ftp_url/ver.txt -O $web_dir/ver.txt
#下载代码数据的打包文件,根据前面获取的版本号,下载对应的版本数据打包文件
  wget -q $ftp_url/packages/myweb-$version.tar.gz -O $web_dir/myweb-$version.tar.gz
#对下载下来的数据打包文件计算HASH值(哈希值),awk过滤仅显示第一列数据结果
  hash=$(md5sum $web_dir/myweb-$version.tar.gz| awk '{print $1}')
#使用curl访问ftp服务器上面的HASH值
  ftp_hash=$(curl -s $ftp_url/packages/myweb-$version.tar.gz.md5)
#对比本地和FTP服务的HASH值是否一致,如果不一致代表数据损坏了
#如果一致就可以解压该数据包,将数据解压到网站根目录下/var/www/html/
  if [ "$hash" == "$ftp_hash" ];then
     tar -xf $web_dir/myweb-$version.tar.gz -C $web_dir
  fi
}

#判断如果本地没有/var/www/html/ver.txt文件,则直接调用前面的函数下载代码数据
if [ ! -f $web_dir/ver.txt ];then
  down_file
fi
#盘如果本地有/var/www/html/ver.txt文件,则判断本地版本文件和FTP版本文件是否一致
#一致就不再下载FTP的数据,如果不一致则调用前面的函数下载新的代码数据包
if [ -f $web_dir/ver.txt ];then
  ftp_ver=$(curl -s $ftp_url/ver.txt)
  local_ver=$(cat $web_dir/ver.txt)
  if [ "$ftp_ver" != "$local_ver" ];then
      down_file
  fi
fi
~]# chmod +x  web.sh                #添加可执行权限
~]# ./web.sh                         #执行脚本

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐