写一键部署bash脚本

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一键部署bash脚本相关的知识,希望对你有一定的参考价值。

因为我开源的一键部署应用到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脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本一键部署——tomcat安装部署

MySQL5.7一键安装脚本

shell脚本 一键部署 Lamp 架构

Shell脚本一键部署MongoDB

应用maven自动部署的脚本

基于Bash脚本自己开发ROS的一键启动