腳本分享-利用"SED"命令編寫一個用於SVN賬號管理的交互式腳本
阿新 • • 發佈:2018-07-19
proc 條件 exit %d swd ftw sed ash else 描述
-- 輸入的密碼只允許英文、數字字符輸入,不可為空,不可含有特殊字符!
由於公司員工流動性強,SVN服務器總是要添加和刪除賬號,每次都要反復的配置,當賬號密碼多了有點眼花繚亂,感覺有點麻煩,為了方便,所以寫了一個基於"Sed"命令的用於添加和刪除SVN賬號的交互式腳本分享!
前提
我們都只到配置SVN服務,有兩個文件"passwd"和"authz"。"passwd"用於存儲賬號密碼信息,"authz"用於賬號權限控制。我們這個腳本依賴於文件結構,需要準備兩個規範化的文檔。
編寫步驟
1、準備的"passwd"文件一份,模板如下:
[root@localhost conf]# vi passwd [users] #產品負責人 #產品或項目經理 #UI設計師 #ID設計師 #軟件工程師 #測試工程師 #硬件工程師 #運維工程師
2、準備已配置好權限和組的"authz"文件一份,模板如下:
#註:"="等於號後面需有一個空格
#用戶組
[groups]
admin =
director =
manager =
software =
test =
hardware =
ui =
id =
#根目錄
[/]
@director = rw
@manager = rw
* = r
省略內容.....
3、編寫腳本
基本功能:添加和刪除賬號
編寫要求:
-- 交互式添加與刪除賬號!
-- 當輸出錯誤,則提示用戶重新輸入,不會退出腳本執行!
-- 輸入的賬號只允許英文字符輸入,不可為空,不可含有特殊字符!
內容如下:
[root@localhost conf]# vi svnmanager.sh #!/bin/bash echo ‘################################################ # 此腳本用於SVN賬號管理,添加或刪除 # ################################################ # 1、輸入"1",表示添加一個SVN賬號 # # 2、輸入"2", 表示刪除一個SVN賬號 # # 3、若輸入其他,則退出腳本 # # 註:刪除需謹慎操作! # ################################################‘ SVN_STORGE_PATH=/var/svn/ProductNew/conf SVN_STORGE_PASSWORD=$SVN_STORGE_PATH/passwd SVN_STORGE_AUTHZ=$SVN_STORGE_PATH/authz read -p ‘請輸入"1" 或 "2": ‘ i date=`date +%Y-%m-%d\ %H:%M:%S` case $i in "1") while : do read -p "請輸入你要添加的賬號: " a1 if [[ $a1 =~ ^[a-zA-Z]+$ ]] then while : do read -p "請輸入密碼: " a2 if [[ $a2 =~ ^[a-zA-Z0-9]+$ ]] then echo ‘################################################ # 編號 職稱 # # 01 產品負責人(director) # # 02 產品或項目經理(manager) # # 03 軟件工程師(software) # # 04 測試工程師(test) # # 05 硬件工程師(hardware) # # 06 UI設計師(ui) # # 07 ID設計師(id) # # 08 運維工程師(admin) # ################################################‘ a3="$a1 = $a2" read -p "請輸入職稱(請輸入編號): " a4 case $a4 in "01") sed -i ‘/^#產品負責人/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^director = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "02") sed -i ‘/^#產品或項目經理/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^manager = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "03") sed -i ‘/^#軟件工程師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^software = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "04") sed -i ‘/^#測試工程師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^test = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "05") sed -i ‘/^#硬件工程師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^hardware = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "06") sed -i ‘/^#UI設計師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^ui = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "07") sed -i ‘/^#ID設計師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^id = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; "08") sed -i ‘/^#運維工程師/a\‘"$a3"‘‘ $SVN_STORGE_PASSWORD sed -i ‘s/^admin = /&‘"$a1",‘/‘ $SVN_STORGE_AUTHZ echo "賬號\"$a1\"添加成功!" echo "時間:$date" exit 0 ;; esac else echo ‘INFO:輸入有誤!請重新輸入!‘ echo ‘INFO:輸入條件:只允許大小寫字母、數字字符輸入!不可為空!不可含有特殊字符!‘ fi done else echo ‘INFO:輸入有誤!請重新輸入!‘ echo ‘INFO:輸入條件:只允許英文字符輸入!不可為空!不可含有特殊字符!‘ fi done ;; "2") read -p "請輸入要刪除的賬號: " b1 if [[ $b1 =~ ^[a-zA-Z]+$ ]] then sed -i ‘/^‘"$b1"‘/d‘ $SVN_STORGE_PASSWORD sed -i ‘s/‘"$b1",‘//g‘ $SVN_STORGE_AUTHZ sed -i ‘s/‘"$b1"‘//g‘ $SVN_STORGE_AUTHZ echo "已刪除賬號\"$b1\"!" echo "時間:$date" else echo ‘INFO:輸入有誤!請重新輸入!‘ echo ‘INFO:輸入條件:只允許英文字符輸入!不可為空!不可含有特殊字符!‘ fi ;; *) echo "INFO:輸入有誤!請重新執行腳本!重新輸入!" ;; esac
4、演示腳本執行效果
(1)我們創建一個賬號看看!嘿嘿
看看文件"passwd"和"authz"文件中是否自動創建了賬號和密碼那!
(2)刪除一個賬號!
是不是感覺很方便了那!一個簡單的腳本分享!
腳本分享-利用"SED"命令編寫一個用於SVN賬號管理的交互式腳本