寫一鍵部署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.pswp.cn/news/284964.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284964.shtml
英文地址,請注明出處:http://en.pswp.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…