因为我开源的一键部署应用到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" ];then
   sudo cp -rf /usr/AntAgent/AntDeployAgentLinuxService.config AntAgent/AntDeployAgentLinuxService.config
   md5hash=''
else 
  #更改配置文件里的Token
  sudo 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}" ]; then
  echo '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如何更改文件里的内容

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

一键部署bash脚本怎么写的更多相关文章

  1. 一键部署lamp 脚本

    一键部署lamp 脚本 如下: #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #----- ...

  2. 一键部署lnmp脚本

    先下载好nginx安装包,解包之后可以执行下面的脚本,一键部署 cd nginx-1.12.2 useradd -s /sbin/nologin nginx./configuremakemake in ...

  3. 一键部署lamp脚本

    #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #-------Apache------ # ...

  4. openvpn部署之快速入门实战+一键部署openvpn脚本

    个人原创禁止转载 软件环境: Centos6.9 x64 openvpn-2.4.3-1.el6.x86_64.rpm easy-rsa-2.2.2-1.el6.noarch.rpm    #推荐使用 ...

  5. 一键部署haproxy脚本

    HAPROXY_VERSION=2.6.6 HAPROXY_FILE=haproxy-${HAPROXY_VERSION}.tar.gz #HAPROXY_FILE=haproxy-2.2.12.ta ...

  6. Docker一键部署Hadoop心得(一)

    最近一直在折腾使用docker一键部署全分布式hadoop集群,虽然一键部署的脚本写好了并且可以成功运行出各个节点,但在运行一个wordcount实例时出现了错误,错误如下: java.io.IOEx ...

  7. 源码编译安装Apache-附一键部署脚本

    1.进入apache官网https://www.apache.org/,点击Download 2.如图选择 3.选择httpd 4.下载两个包,2.2为CentOS6使用,2.4为CentOS7使用 ...

  8. Centos 环境一键部署脚本(shell脚本)

    谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...

  9. ceph集群一键部署脚本

    分布式存储ceph相信大家比较熟悉了.某项目临时要做一个40个节点的存储集群.所以写了这个脚本. 一键部署脚本如下: git clone https://github.com/luckman666/d ...

随机推荐

  1. 华为麒麟团队力造的Python,整整26G

    华为团队力造的Python,下面链接自取 https://docs.qq.com/doc/DRkZvRkxvb292c2Vz

  2. 安装黑苹果 、 Mac OS虚拟机

    Mac OS 虚拟机 所需文件地址 unlocker 为VMware 新增Apple Mac OS X操作系统 Install_macOS_Monterey_12.0.1_21A559.iso 提取码 ...

  3. Django/MySql数据库基本操作&ORM操作

    数据库配置: #第一步在settings里面 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME':'dbna ...

  4. linux系统如何查看内核版本、操作系统版本等信息

    有时候需要查看linux系统的内核版本,可以有多种方法,方法如下:(下面以优麒麟系统为例) 方法1: 打开mate终端,在命令行输入以下命令: uname -a 运行效果如下: ​​​ 如果只查看内核 ...

  5. 使用Visual Studio 2022开发前端

    前端开发环境多数基于Node.js,好处不多说了.但与使用Visual Studio开发的后端Asp.Net Core项目一起调试,却不是很方便,所以试着在Visual Studio 2022中开发前 ...

  6. Open Harmony移植:build lite配置目录全梳理

    摘要:本文主要介绍build lite 轻量级编译构建系统涉及的配置目录的用途,分析相关的源代码. 本文分享自华为云社区<移植案例与原理 - build lite配置目录全梳理>,作者:z ...

  7. FinClip 前端之 VUE 核心原理总结

    小程序框架有很多,都是支持前端JavaScript语言的,也是支持 vue.js 框架的.FinClip 小程序是兼容各家平台的.所以在学习了框架使用之后的进阶就要熟悉框架的底层原理. 1.数据响应式 ...

  8. 安装Speedtest到CentOS(YUM)

    Speedtest是一个由Python语言编写的一个网络测速脚本,提供多个外网的测试站点,我们可以使用它测试网络的IO速度. 如果由于网络问题导致无法下载软件包,则可以通过安装模块到Python的方式 ...

  9. 下篇:技术 Leader 的思考方式

    作者: 朱春茂(知明) 技术 Leader 是一个对综合素质要求非常高的岗位,不仅要有解具体技术问题的架构能力,还要具备团队管理的能力,更需要引领方向带领团队/平台穿越迷茫进阶到下一个境界的能力.所以 ...

  10. SAM[详细~bushi]

    基础性质概念 后缀自动机:S的SAM是个DAG,每个节点叫状态,每条带字符ch边表示+ch转移,从开始节点往下,任何一条路径都会对应一个S的子串. 不过为什么要叫"后缀"自动机呢? ...