写一键部署bash脚本

706c6375ebc3de26710bf6c78d6ec648.png

因为我开源的一键部署应用到linux服务器的AntDeploy, 在linux部署是需要安装一个agent服务(systemctl服务)

如果是手动第一次安装的话 需要敲

  1. 下载 wget

  2. 解压 tar

  3. 修改配置文件的token

  4. 复制到指定安装目录

  5. 设置权限

  6. 设置systemd

  7. 设置systemctl

  8. 清除临时文件

至少这8中类型的命令

如果我的agent需要更新版本的话,那么需要重新来一遍

  1. 下载 wget

  2. 解压 tar

  3. 配置文件保存备份

  4. 复制到指定安装目录,并恢复先前的配置

  5. 设置权限

  6. 设置systemd

  7. 设置systemctl

  8. 清除临时文件

这么多类型的命令,我们把它们都放在一个脚本文件里面,然后只需要一行命令就可以搞定,是不是很爽呢

curl https://files-cdn.cnblogs.com/files/yudongdong/install_antdeploy_agent.sh|sudo sh
#!/bin/sh#当前时间戳
timestamp=$(date "+%Y%m%d%H%M%S")
#随机数
randomstr=$RANDOM
#生成token
md5hash=$(echo -n ${timestamp}${randomstr} | md5sum | head -c 32)
#先删除当前文件夹下的AntAgent.tar.gz文件
sudo rm -rf AntAgent.tar.gz >/dev/null 2>&1 &
#删除当前文件夹下的AntAgent文件夹
sudo rm -rf AntAgent >/dev/null 2>&1 &
#下载
sudo wget https://files.cnblogs.com/files/yudongdong/AntAgent.tar.gz
#解压到当前文件夹下的AntAgent文件夹
sudo tar -xvzf AntAgent.tar.gz --one-top-level
#停止AntAgent服务
sudo systemctl stop AntAgent >/dev/null 2>&1 &
#如果是更新的话 把配置文件放到temp目录下
if [ -d "/usr/AntAgent" ];thensudo cp -rf /usr/AntAgent/AntDeployAgentLinuxService.config AntAgent/AntDeployAgentLinuxService.configmd5hash=''
else #更改配置文件里的Tokensudo sed -i -e 's/p@ssw0rd/'"$md5hash"'/g' AntAgent/AntDeployAgentLinuxService.config
fi
#删除安装目录的AntAgent文件夹
sudo rm -rf /usr/AntAgent >/dev/null 2>&1 &
#复制到安装目录
sudo mv -f AntAgent /usr/
#清除本地
sudo rm -rf AntAgent.tar.gz >/dev/null 2>&1 &
sudo rm -rf AntAgent >/dev/null 2>&1 &
#设置权限
sudo chmod +x /usr/AntAgent/AntDeployAgentLinuxService
#设置systemd
sudo cp /usr/AntAgent/AntAgent.service /etc/systemd/system/AntAgent.service
#设置systemctl
sudo systemctl daemon-reload
sudo systemctl enable AntAgent
sudo systemctl start AntAgent
sudo systemctl status AntAgent --no-pager
if [ -z "${md5hash}" ]; thenecho 'OK, AntAgent has been updated in /usr/AntAgent.'
else echo 'OK, AntAgent has been installed in /usr/AntAgent with Token:'"$md5hash"''  
fi

要点:

  • bash的获取当前时间戳

  • bash如何获取md5

  • bash如何做条件判断

  • bash如何做命令做容错处理

  • bash如何对字符串做拼接展示

  • bash如何更改文件里的内容

先关注收藏,没准你以后用到,节省你的时间

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/284964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UITableView的使用及代理方法

在App开放中我们经常会使用到UITabbleView&#xff0c;常用于数据展示。那么使用时不得不引入两个代理方法<UITableViewDataSource,UITableViewDelegate>。 下面我们来简单的创建一个TableView并介绍下其基本属性。 property (nonatomic,strong) UITableView * myTable; …

Java集合和泛型练习及面试题——博客园:师妹开讲啦

给定一段JAVA代码如下&#xff1a;要打印出list中存储的内容&#xff0c;以下语句正确的是&#xff08; B &#xff09; ArrayList list new ArrayList( ) list.add(“a”) list.add(“b”) Iterator it list.iterator( ) A.while(it. Next( ) )   system.out.prin…

对于经常需要truncate的表进行固定统计信息

为什么80%的码农都做不了架构师&#xff1f;>>> 大家做过统计的一些存储过程可能会知道&#xff0c;我们经常有这类表&#xff0c;要先truncate它&#xff0c;执行插入&#xff0c;再在执行相关sql&#xff0c;这就会导致有一个时间误差&#xff0c;如果在truncate…

ArcGIS实验教程——实验四十一:ArcGIS区域分析统计直方图(土地利用--坡度分级柱状统计图的制作)

文章目录 一、任务描述二、实验数据三、实验过程一、任务描述 在实际工作中,通常需要统计不同类型的土地利用数据与坡度的关系。本实验中以土地利用landuse和数字高程模型dem数据为例,基于ArcGIS平台,统计了村庄、风景名胜、林地、草地、旱地等多种类型土地利用数据所占用的…

[转]图片格式WEBP全面解析

前言 不管是 PC 还是移动端&#xff0c;图片一直是流量大头&#xff0c;以苹果公司 Retina 产品为代表的高 PPI 屏对图片的质量提出了更高的要求&#xff0c;如何保证在图片的精细度不降低的前提下缩小图片体积&#xff0c;成为了一个有价值且值得探索的事情。 但如今对于 JP…

C语言试题189之编写一个程序,按照下图中的样子创建数据结构,最后三个对象都是动态分配的结构。第一个对象则可能是一个静态的指向结构的指针

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 编写一…

基于.NetCore开发博客项目 StarBlog - (15) 生成随机尺寸图片

系列文章基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客&#xff1f;基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目基于.NetCore开发博客项目 StarBlog - (3) 模型设计基于.NetCore开发博客项目 StarBlog - (4) markdown博客批量导入基于.N…

【初探移动前端开发03】jQuery Mobile(上)

前言到目前为止&#xff0c;我打了几天酱油了&#xff0c;这几天落实了工作&#xff0c;并且看了一部电视连续剧&#xff08;陈道明-手机&#xff09;&#xff0c;我很少看连续剧了&#xff0c;但是手机质量很高啊&#xff0c;各位可以看看。我们今天先学习一下jquery mobile的…

Git Bash的一些命令和配置

查看git版本号&#xff1a; git --version 如果是第一次使用Git&#xff0c;你需要设置署名和邮箱&#xff1a; $ git config --global user.name "用户名" $ git config --global user.email "电子邮箱" 检查你的设置 $ git config --list 或单独检查一项…

/dev/null 文件

/dev/null 文件 如果希望执行某个命令&#xff0c;但又不希望在屏幕上显示输出结果&#xff0c;那么可以将输出重定向到 /dev/null&#xff1a; $ command > /dev/null /dev/null 是一个特殊的文件&#xff0c;写入到它的内容都会被丢弃&#xff1b;如果尝试从该文件读取内容…

C语言试题190之实现函数在第一个参数中进行查找,并返回匹配第二个参数所包含的字符的数目

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现函…

强大的多列 IN 查询语句,及数据库支持情况。

SQL 中最强大的也是最复杂的就是查询部分。在需要查询多条记录时我们一般会采用 in 关键字来指定要查询的条件&#xff1a;SELECT * FROM t_user WHERE uid IN (1,2,3,4,5,6,7,8,9);但如果对应的数据需要两个或更多字段才能确定&#xff0c;可能会写出以下的 SQL 语句&#xff…

ArcGIS实验教程——实验四十二:ArcGIS密度分析(核密度、点密度、线密度)

文章目录 一、密度分析原理二、点密度分析三、线密度分析四、核密度分析一、密度分析原理 密度分析是指根据输入的要素数据集计算整个区域的数据聚集状况,从而产生一个联系的密度表面。通过密度计算,将每个采样点的值散步到整个研究区域,并获得输出栅格中每个像元的密度值。…

Log4Net的WebApplication使用

一、Log4Net的WebApplication使用 1、首先使用nuget 添加log4Net 到WebApplication项目中 log4j每个符号的具体含义&#xff1a;%d %5p %c{1}:%L - %m%n log4j.properties# %m 输出代码中指定的消息# %p 输出优先级&#xff0c;即DEBUG&#xff0c;INFO&#xff0c;WARN&…

C语言试题191之实现strcat函数功能

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…

eclipse启动tomcat无法访问

症状&#xff1a; tomcat在eclipse里面能正常启动&#xff0c;而在浏览器中访问http://localhost:8080/不能访问&#xff0c;且报404错误。同时其他项目页面也不能访问。 关闭eclipse里面的tomcat&#xff0c;在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt:…

[转]IntelliJ IDEA 2020.1 正式发布,15 项重大特性、官方支持中文了!

头图&作者 | YourBatman&#xff0c;CSDN博客专家 责编 | 唐小引 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 前言 千呼万唤始出来&#xff01;自从官方在 2020-01-20 发布了其 2020 年的 Roadmap 后&#xff0c;我便持续关注着、期待着 JetBrains Intell…

【ArcGIS遇上Python】ArcGIS批量为多个矢量图层添加一个或多个字段(Add Field)案例实现

多个人在利用ArcGIS做数字化之后,需要批量为多个图层添加一个或者多个相同的字段,挨个手动添加字段显然不可取。ArcGIS Python提供了快速高效的批量添加字段的解决方案。本文以土地利用数据(Landuse1和Landuse2)为例,采用简单的Python代码实现了文中两个矢量图层批量添加字…

可下载!Vue3+.NET6实战系列:通用管理后台

.NET Framework停更3年&#xff0c;4月份还又停止了3个版本支持&#xff0c;居然还有人没怎么接触.NET跨平台&#xff01;真的该好好学下.NET6了&#xff0c;已经是不得不学了&#xff01;好好看下这套《Vue3.NET6前后端分离电商实战》免费教程&#xff0c;完整的源码视频课件全…

C语言试题192之实现strchr函数功能

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现st…