需求背景:
因為公司脫敏需求,需再搭建一套jira+confluence的環境。於是我用鏡像起了一套。
新環境起來之后,需要刪除已有的project。
手動刪除效率低,於是考慮了批量刪除的操作。
大致實現過程,記錄如下:
1.1)先去jira Manage apps下載免費的Atlassian command line interface (CLI)
1.2)安裝到jira服務器(我這邊的場景是jira+confluence部署在同一台服務器上)
命令如下:
mkdir -p /opt/soft
cd /opt/soft
wget https://api.media.atlassian.com/file/15588a27-4330-4010-9024-1d86a4cfc092/binary?token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIxYzZjOWRlMy05NDAyLTQwZjItYTM1YS0zYmM3MzVjOGQzNWMiLCJhY2Nlc3MiOnsidXJuOmZpbGVzdG9yZTpmaWxlOjE1NTg4YTI3LTQzMzAtNDAxMC05MDI0LTFkODZhNGNmYzA5MiI6WyJyZWFkIl19LCJleHAiOjE1Nzc1ODExODksIm5iZiI6MTU3NzQ5ODIwOX0.0wlAmSKCzMePlHHFGxsHIJfvxzNYPgPDvmwocNL2V8o&client=1c6c9de3-9402-40f2-a35a-3bc735c8d35c&name=atlassian-cli-9.1.0-distribution.zip
unzip atlassian-cli-9.1.0-distribution.zip
cd atlassian-cli-9.1.0
mv acli-server.properties acli.properties
cat acli.properties
# Example Server configuration - customize and rename this file to acli.properties
credentials = --user admin --password **********
myjira = jira -s http://jira.xxxx:8080 ${credentials}
myconfluence = confluence -s http://jira.xxxx.cn:8090 ${credentials}
# This defines the default client for actions, choose the most likely used client
#當你要進行Confluence的操作時,注釋myjira那行。
#當你要進行Jira的操作時,注釋myconfluence那行。
#default = ${myjira}
default = ${myconfluence}
##....刪除jira略去
接下來記錄的是刪除Confluence project的過程。
前往cli官網,可以查看confluence example
https://bobswift.atlassian.net/wiki/spaces/CSOAP/pages/10584066/Examples
比如我們要刪除單個project
--action removeSpace --space "zconfluencecliExport"
批量刪除,我則寫了一個腳本
首先sql獲取一份所有項目的key,保存為txt
...sql命令略去
head space-key.txt
NT
NET
POR
UG
MK
UC
AOP
APP
123654
然后寫一個shell腳本
cat confluence-del-spece.sh
#!/bin/bash
cat /opt/soft/atlassian-cli-9.1.0/space-key.txt|while read line
do
cd /opt/soft/atlassian-cli-9.1.0/ &&./acli.sh --action removeSpace --space $line
done
總結:
1)項目大的話,則刪除過程,會比較長,需要用到nohub或者screen
我這邊500個項目,大概花了12個小時。